Как упростить арифметическое выражение в стиле C, содержащее переменные во время генерации кода?

Я пытаюсь оптимизировать оценку выражения в компиляторе.

Все арифметические выражения выполнены в стиле C и могут содержать переменные. Я надеюсь максимально упростить выражения.

Например,(3+100*A*B+100)*3+100 может быть упрощено до.409+300*A*B

Это в основном зависит от распределительного права, ассоциативного права и коммутативного права.

Основная сложность, с которой я сталкиваюсь, заключается в том, как объединить эти арифметические законы и традиционные алгоритмы оценки стекового сканирования.

Кто-нибудь может поделиться опытом, связанным с этой или подобными проблемами в контексте компиляции?

Ответы на вопрос(2)

Ваш ответ на вопрос