Grammar)とは、形式文法の生成に関する属性を定義する形式的手法。属性には値を関連付けられる。その言語を構文解析やコンパイラで処理する際に、属性の評価(属性から値を得ること)が抽象構文木上のノードで行われる。属性は2種類に分類される。合成(sythesized)属性と継承(inherited)属性である。合成属性とは、属性評価の結果として生成されるものであり、継承属性の値を使用することもある。継承属性とは、親ノードから継承される属性である。いくつかの手法では、合成属性は意味情報を構文解析木の上に渡すのに使われ、継承属性は逆に下に渡すのに使われる。言語変換ツールを作成する場合、属性文法は構文要素に意味(値)を設定するのに使われる。文法(構文規則だけでは明示的に示されない言語の規則)に従って意味論的検証を行うことも可能である。属性文法は構文木を変換して特定マシン向けのコードを直接生成することもできる(あるいは中間言語を生成する)。左から右に評価していく。L属性文法で評価された属性は一種のトップダウン構文解析である。多くのプログラミング言語はL属性である。L属性文法に基づいている。継承属性を持たない属性文法。トップダウン構文解析でもボトムアップ構文解析でも使用可能。S属性文法に基づいている。LR属性文法LR法を使った構文解析での属性文法。ボトムアップ構文解析で使用。L属性文法のサブセットであり、S属性文法のスーパーセットである。LR属性文法に基づいている。ECLR属性文法LR属性文法の派生。継承属性間の等価関係を利用して属性評価を最適化している。LR属性文法のスーパーセットである。(日時は個人設定で未設定ならばUTC)。表示-継承ライセンスの下で利用可能です。追加の条件が適用される場合があります。詳細は利用規約を参照してください。開発者Cookieに関する声明モバイルビュ。