コンパイラで式の評価を最適化しようとしています。
算術式はすべて C スタイルで、変数を含めることができます。できるだけ表現を簡略化したいと考えています。
たとえば、(3+100*A*B+100)*3+100
に簡略化できます409+300*A*B
。
それは主に分配法則、結合法則、交換法則に依存します。
私が遭遇する主な困難は、これらの算術法則と従来のスタックスキャン評価アルゴリズムをどのように組み合わせるかということです。
コンパイラ構築のコンテキストで、これまたは同様の問題に関連する経験を共有できますか?