私のコンパイラ設計教授は、ステートメントを評価する際に、すべてのトークンを後置記号に変換します。関数呼び出し以外はすべて中置表記になっているので、後置に変換する必要があります。関数は接頭辞と中置表記ではありません。だから彼らも改宗する必要があります。 これは、+(a,b)
または+ab
の接頭辞表記に相当する中置のa+b
として示されます。接頭辞表記の後の利点
しかし、私はすべてを後置に変換して表記法を変えなければならない理由を理解していませんか?関数はすでにプレフィックスになっているので、非関数エンティティを接頭辞表記に変換して逆に実行する方が速いはずはありませんか?
ありがとう、それは疑いをクリアします。しかし、私が通訳に行くのであれば、構文解析と接尾辞/接頭辞への変換がシステムのボトルネックになるでしょうか? – Crimson7
私はそれを真剣に疑っています。構文解析のコストは1回限りのヒットであり、ほとんど確実にボトルネックではありません。一般的に、解析中に何かばかげた非効率な作業をしない限り、問題はありません。 – templatetypedef
また、他のものよりも処理が遅いことさえ確信していますか?私は両方の方法で変換を行っていることがわかっているアルゴリズムについて考えていますが、実行時には似ていなければなりません。 – templatetypedef