Loading article…
構文指向翻訳とは、ソース言語の翻訳が完全にパーサーによって制御されるコンパイラ実装方法を指します。
構文指向翻訳の一般的な方法は、文法の各規則にアクションを1つずつ割り当てて、文字列をアクションのシーケンスに変換することです。[ 1 ]したがって、文法の文字列を解析すると、規則適用のシーケンスが生成されます。SDTは、そのような構文に意味論を割り当てる簡単な方法を提供します。
構文指向翻訳は、基本的に文脈自由文法の生成規則にアクションを追加することで機能し、その結果として構文指向定義(SDD)が生成されます。[ 2 ]アクションとは、その生成規則が派生で使用されるときに実行されるステップまたは手順のことです。実行されるアクションが埋め込まれた文法仕様は、構文指向翻訳スキームと呼ばれます[ 1 ](単に「翻訳スキーム」と呼ばれることもあります)。
文法内の各記号には属性があり、これは記号に関連付けられる値です。一般的な属性には、変数型、式の値などが含まれます。属性t を持つ記号 X が与えられた場合、その属性はX . tと呼ばれます。
このように、与えられた動作と属性に基づいて、この文法は、動作を適用し、各記号の属性を通して情報を伝達することで、その言語の文字列を翻訳するために使用できる。
初期のメタコンパイラは、その説明において「構文駆動型翻訳」や「構文指向型翻訳」といった用語を用いていた。それらは、コードを出力するメタプログラミング言語の機能を備えていた。