7

コンパイラで式の評価を最適化しようとしています。

算術式はすべて C スタイルで、変数を含めることができます。できるだけ表現を簡略化したいと考えています。

たとえば、(3+100*A*B+100)*3+100に簡略化できます409+300*A*B

それは主に分配法則、結合法則、交換法則に依存します。

私が遭遇する主な困難は、これらの算術法則と従来のスタックスキャン評価アルゴリズムをどのように組み合わせるかということです。

コンパイラ構築のコンテキストで、これまたは同様の問題に関連する経験を共有できますか?

4

2 に答える 2

1

コンパイルのコード生成パス中に、定数の折りたたみと強度の削減を組み合わせて適用します。ほとんどのコンパイラ テキストは、これを実装するためのアルゴリズムを提供します。

于 2013-08-03T21:04:33.687 に答える