Я читал об алгоритмах объединения, и эффективные, кажется, имеют в качестве входных данных DAG, где, как я понимаю, термины, которые являются общими в выражении, не являются дублированными узлами (как в AST).
Я уверен, что есть хорошо известные алгоритмы, которые преобразуют выражение из "строкового представления" или AST в DAG.
Существуют ли такие алгоритмы? Я просто хочу не изобретать велосипед.