Context-Free Grammars

ecma262 - Context-Free Grammars

日本語では文脈自由文法などと呼ばれる。略称は CFG.

例: 「数字とは 0, 1, 2, …, のいずれかである」や「小数とは 符号, 数字の連続, 小数点, 数字の連続…」, のような文法の定義。その定義ひとつひとつを Production (生成規則) と呼ぶ。

→ 関連: Production

ecma262 and CFG

ecma262 上では (E)BNF ライクな独自の記法が構文・字句文法の記述時に使われる。

大きく分けて Syntactic Grammar, Numeric String Grammar, Lexical and RegExp Grammars の 3 種類存在する。(また、Syntax-Directed Operations の定義中でその 3 種類が使われる可能性もある)

terms/words

豆知識

ecma262 の 5.1.1 の Context-Free Grammars の文章について、chain production 以外はどうやら Java の仕様書のコピペ。

Links to this page
  • Static Semantics

    主にコードの静的な解析関連で、例えばコードが ECMAScript として正しいかとか、コードを見てこれはこういう意味をもったコードだと判定したりといった Static な Semantics をもったアルゴリズムのこと。Context-Free Grammars だけでは表現しきれないルールのために用いられる。

#cfg #esspec/cfg #esspec/chain-production #esspec/goal-symbol