タグ

bnfに関するamari3のブックマーク (4)

  • perl Parse::RecDescent クイックスタート - 備忘録

    perlは使えるけどBNFって何?yaccとは?って人(俺)向けの3分で分かるクイックスタート。 といっても、最低限、再帰関数と正規表現は使えることが前提。 RecDescent モジュールの宣言・メンバ関数・利用法 文法仕様(grammar rules) 注:$grammar = <<END;という記述は、ENDが現れるまでを文字列として$grammarに格納する、というperlの表記。あまり見かけないので知らない人は注意。 文法仕様は次のような、ルールの集まりのこと

  • EBNF - Wikipedia

    EBNF(Extended Backus–Naur Form)とは、文脈自由文法を表現するメタ文法記法であり、コンピュータのプログラミング言語や形式言語の形式的表現として使われる。バッカス・ナウア記法 (BNF) の拡張であり、拡張バッカス・ナウア記法とも呼ばれるが、ABNF(Augmented Backus-Naur Form)も同じ訳語となるため、区別するためあえて EBNF としている。 ニクラウス・ヴィルトが最初に開発した。EBNF の標準化されたものとして ISO-14977 などがある。 基[編集] プログラムのソースコードは、終端記号で構成される。終端記号は、具体的な文字や数字や記号で構成される。 EBNF は、非終端記号に対応する記号列を指示する生成規則によって定義される。 digit excluding zero = "1" | "2" | "3" | "4" | "5

    amari3
    amari3 2010/05/22
  • プログラム言語の文法はどうやって定義されるのか?

    プログラム言語の文法はどうやって定義されるのか?:Javaでコンパイラの基礎を理解する(4)(1/2 ページ) 前回までの解説でコンパイラが生成するオブジェクトコードとそれを実行する仮想マシンについては理解できたはずです。コンパイラが出力するものについては明確にできましたから、次はコンパイラへ入力するソースコードについて考えることにします。 ソースコードには、プログラムを記述することになりますから、それをどのように記述するかを自分で決める必要があります。つまり、プログラム言語の文法を自分で定義するのです。今回はこの方法について解説をします。 コンパイラの仕様(どのように動くか? を決める) 連載でターゲットとしている仮想マシンは非常に単純なものですから、バイナリファイルを毎回手作業で作成することも可能です。 とはいえ、簡単な計算をするために毎回この作業をするのは大変ですから、普段使い慣れ

    プログラム言語の文法はどうやって定義されるのか?
    amari3
    amari3 2010/05/20
  • バッカス・ナウア記法 - Wikipedia

    バッカス・ナウア記法(英: Backus–Naur form)とは、文脈自由文法を定義するのに用いられるメタ言語のことで、一般にBNFやBN記法と略される。現在はこのBNFを拡張したEBNF (Extended BNF) が一般的に使われている。EBNFでは正規表現を用いてより簡単に記述でき、プロトコル規定言語であるASN.1や、XMLの構文定義にも利用されている。 ジョン・バッカスとピーター・ナウアがALGOL 60 の文法定義のために考案。当初は文脈自由文法の来の定義に則り or(|)以外の定義はなく、繰り返しは再帰を利用して表現されている。*、?等の量化子はBNFを拡張したEBNFによって導入された。パーサジェネレータを使用して構文解析器を生成する際に、構文を定義するためにも使う。 ISO/IEC 14977:1996においてEBNFの標準が定義されているが、EBNFにもいろいろな

  • 1