第4回 BNF記法入門(1) ─XML関連仕様を読むために─ W3Cの勧告として発表されているXML 1.0の仕様書は、XMLの構文を厳密に定義するためにBNFと呼ばれる記法で記述されている。XML関連の仕様書を読みこなそうとすれば、BNFの理解は不可避だ。今回はそのBNFを解説しよう。 ■話題 BNF記法 ■程度 C (XMLに関するひととおりの知識を持っている人を対象とする) ■目的 基礎的な知識の解説 この連載を初めてお読みになる方は、「XML深層探求について」をご覧ください。
第4回 BNF記法入門(1) ─XML関連仕様を読むために─ W3Cの勧告として発表されているXML 1.0の仕様書は、XMLの構文を厳密に定義するためにBNFと呼ばれる記法で記述されている。XML関連の仕様書を読みこなそうとすれば、BNFの理解は不可避だ。今回はそのBNFを解説しよう。 ■話題 BNF記法 ■程度 C (XMLに関するひととおりの知識を持っている人を対象とする) ■目的 基礎的な知識の解説 この連載を初めてお読みになる方は、「XML深層探求について」をご覧ください。
バッカス・ナウア記法(英: Backus–Naur form)とは、文脈自由文法を定義するのに用いられるメタ言語のことで、一般にBNFやBN記法と略される。現在はこのBNFを拡張したEBNF (Extended BNF) が一般的に使われている。EBNFでは正規表現を用いてより簡単に記述でき、プロトコル規定言語であるASN.1や、XMLの構文定義にも利用されている。 ジョン・バッカスとピーター・ナウアがALGOL 60 の文法定義のために考案。当初は文脈自由文法の本来の定義に則り or(|)以外の定義はなく、繰り返しは再帰を利用して表現されている。*、?等の量化子はBNFを拡張したEBNFによって導入された。パーサジェネレータを使用して構文解析器を生成する際に、構文を定義するためにも使う。 ISO/IEC 14977:1996においてEBNFの標準が定義されているが、EBNFにもいろいろな
プログラム言語の文法はどうやって定義されるのか?:Javaでコンパイラの基礎を理解する(4)(1/2 ページ) 前回までの解説でコンパイラが生成するオブジェクトコードとそれを実行する仮想マシンについては理解できたはずです。コンパイラが出力するものについては明確にできましたから、次はコンパイラへ入力するソースコードについて考えることにします。 ソースコードには、プログラムを記述することになりますから、それをどのように記述するかを自分で決める必要があります。つまり、プログラム言語の文法を自分で定義するのです。今回はこの方法について解説をします。 コンパイラの仕様(どのように動くか? を決める) 本連載でターゲットとしている仮想マシンは非常に単純なものですから、バイナリファイルを毎回手作業で作成することも可能です。 とはいえ、簡単な計算をするために毎回この作業をするのは大変ですから、普段使い慣れ
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く