Erlang の文法と van Wijngaarden form [Erlang]
形式言語を記述するための記法としては Backus-Naur Form とそれを適当に改変した方言が圧倒的に使われていると思いますが、その他に van Wijngaarden form というのがあるそうです。例を挙げると以下の上が BNF で 、下が同じ文法を van Wijngaarden form で書いたもの。
<additive> ::= <multitive> + <additive> | <multitive> <multitive> ::= <primary> * <multitive> | <primary> <primary> ::= ( <additive> ) | <decimal>
additive: multitive, + symbol, additive; multitive. multitive: primary, * symbol, multitive; primary. primary: ( symbol, additive, ) symbol; decimal.
すなわち、
1. 連続するものはカンマでつないで表現する
2. 選択肢はセミコロンで区切って表現する
3. 最後はピリオド
このカンマ、セミコロン、ピリオドの使い方は何かを思い起こさせるなーと思ったら Erlang だった。それで Erlang の文法が van Wijngaarden form に由来するのだという証言がないかどうかちょっと検索してみたけど見つからず。
しかし「いつも使い分けが分からなくなる」「ピリオドのせいで行のコピー&ペーストなどの編集が面倒」など Erlang の文法で特に評判の悪い部分が実は由緒ある(?)文法記法と同じだと思えばきっとそんなに嫌いではなくなるのではないでしょうか。そうでもないか。
コメント 0