<html xmlns="http://www.w3.org/1999/xhtml"><head></head><body><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="16" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[16]</anchor-end> <dfn xml:lang="en">BNF</dfn> は、<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">文脈自由文法</anchor>の記述書式の一種です。
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">BNF</anchor> とその変種は非常によく用いられています。多くの場合、
「<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">BNF</anchor>」と呼ばれていてもオリジナルな <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">BNF</anchor>
ではなく、何らかの拡張や変更が加えられたものになっています。
また、大規模な変更を加えた <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ABNF</anchor> や <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">EBNF</anchor> もよく用いられますが、
これらにもまた、様々な変種があります。</p><section><h1>標準</h1><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="32" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[32]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">BNF</anchor> と呼ばれるものは数多あり、それら全体の「標準」と言えるものは存在していません。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="5" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[5]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ISO/IEC</anchor> の仕様でも <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">BNF</anchor> やその変種がよく用いられます。
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">EBNF</anchor> を規定した <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ISO/IEC 14977</anchor>
という<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">国際規格</anchor>もあります (ただし、これを用いていない <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ISO/IEC</anchor>
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">規格</anchor>もあります)。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="17" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[17]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">IETF</anchor> の定義する<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">インターネット標準</anchor>としては、 <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">STD 68</anchor>/<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">RFC 5234</anchor>
で定義される <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ABNF</anchor> があります。</p></section><section><h1>変種</h1><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="25" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[25]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">BNF</anchor> には沢山の互いに互換性のない変種があります。
色々な場面でそれぞれの変種が使われており、どれが標準とは一概には言えません。</p><figure class="short list"><ul><li><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ABNF</anchor></li><li><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">EBNF</anchor></li><li><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">DXLのBNF</anchor></li><li><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ISO 6093のBNF</anchor></li><li><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ISO/IEC 10646のBNF</anchor></li><li><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">JIS X 4081のBNF</anchor></li><li><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">PascalのBNF</anchor></li><li><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">WBXMLのBNF</anchor></li><li><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">RBNF</anchor></li><li><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">R-BNF</anchor></li><li><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">BNF擬似スキーマ</anchor></li><li><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">XDRの拡張済BNF</anchor></li></ul></figure><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="29" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[29]</anchor-end> <cite>第3章 TAD 詳細仕様書</cite>, <time>2011-01-26T00:45:16.000Z</time>, <time>2022-08-25T14:12:19.734Z</time> <anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="http://www.chokanji.com/developer/doc/btron3/shared_data/tad1.html#abx">http://www.chokanji.com/developer/doc/btron3/shared_data/tad1.html#abx</anchor-external></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="30" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[30]</anchor-end> <cite>Microsoft Word - 910-S004-uBNF_0.00.05-061012.doc - UID-CO00003-0.00.05.pdf</cite>, <time>2010-09-27T02:04:40.000Z</time>, <time>2022-10-14T15:49:33.301Z</time> <anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="http://www.uidcenter.org/ja/wp-content/themes/wp.vicuna/pdf/UID-CO00003-0.00.05.pdf">http://www.uidcenter.org/ja/wp-content/themes/wp.vicuna/pdf/UID-CO00003-0.00.05.pdf</anchor-external></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="31" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[31]</anchor-end> <cite>BSON (Binary JSON): Specification</cite>, <time>2022-04-14T15:19:45.000Z</time>, <time>2023-04-17T05:04:34.463Z</time> <anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="https://bsonspec.org/spec.html">https://bsonspec.org/spec.html</anchor-external></p><blockquote><p>a pseudo-<asis xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">BNF<title xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:">リンク</title></asis> syntax</p></blockquote><p>(リンク先は<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">English</anchor>版<cite>Wikipedia</cite>)</p><p>を定義なく使っています。</p></section><section><h1>限界</h1><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="21" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[21]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">BNF</anchor> の表現能力の限界は、方言により様々です。しかし次のような制限があるのが一般的です。</p><figure class="list"><ul><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="22" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[22]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">前方参照</anchor>のようなもの (<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Perl</anchor> の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">正規表現</anchor>の <code><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">\<var xmlns="http://www.w3.org/1999/xhtml">N</var></anchor></code>) がないため、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">XML</anchor> の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">開始タグ</anchor>と<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">終了タグ</anchor>の関係 (<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">タグ名</anchor>の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">一致</anchor>) などが記述できない。</li><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="23" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[23]</anchor-end> 正しい構文は記述できるが、誤った入力をどう処理するべきかは記述できない。</li><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="24" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[24]</anchor-end> 構文は記述できるが、構文解析して得るべき<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">データモデル</anchor>との対応関係は記述できない。</li></ul></figure><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="26" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[26]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">BNF</anchor> の変種やその利用方法によっては、<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">言語</anchor>のすべてを記述することを諦め、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">自然言語</anchor>文で制約を記述したものを構文規則の一部として記述できることがあります。
専用の構文がなくても、<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">注釈</anchor>が実質的にそのように利用されていることがあります。</p><hr></hr><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="27" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[27]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">BNF</anchor> に限らず<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">機械可読</anchor>な構文記述方式では表現能力に限界があり、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">仕様書</anchor>の利用者の混乱の元になると非難する人もいます。
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">BNF</anchor> 等の方が (一定の訓練を経た人なら) 記述された内容を理解しやすいかもしれませんが、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">自然言語</anchor>等でより詳細・厳密に記述する方が望ましいとされます。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="28" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[28]</anchor-end> かつて <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">HTML</anchor> その他の <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Web</anchor> に関する技術の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">仕様書</anchor>では <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">DTD</anchor>
や <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ABNF</anchor> が使われていました。しかし、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">自然言語</anchor>で記述された要件を無視して<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">機械可読</anchor>な要件だけを検査することで<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">適合性</anchor>を判断する誤った考え方の温床となっていたこと、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">著者</anchor>に対する<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">生成</anchor>の要件と<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">実装</anchor>に対する解釈の要件を明確に区別することが困難で混乱の元となること、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">構文解析器</anchor>の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">誤り</anchor>の処理など実際の動作を厳密に記述できる方式が存在しないことなどにより、
<cite>Web Applications 1.0</cite> (後の <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">HTML5</anchor>) 以来<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">自然言語</anchor>のみの記述に置き換えられていきました。
現在では限られた部分で <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ABNF</anchor> によって<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">著者</anchor>に対する要件のみが記述されるにとどまっています。</p></section><section><h1>BNF とは何か</h1><ul><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="6" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[6]</anchor-end> というか、はっきりいって、どんなのまで BNF と言うのかよく分からん。みんな好き勝手に拡張した自分の形式を BNF だと主張しているような。</li><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="7" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[7]</anchor-end> 例えば <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">JIS X 4081</anchor>:2002 の「実体構造の表記法」は BNF なのかどうか。そうじゃないような気もするけどそうであるような気もするし。規格に BNF だとは書いてないから、 BNF じゃないのかな:)</li><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="8" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[8]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">SGML</anchor> の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">要素</anchor>の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">内容モデル</anchor>も BNF のような気もするけど、それが BNF なら<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">正規表現</anchor>も BNF のような気がしてくる。しかし正規表現の一種のような <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">XML</anchor> の構文記述法は <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">EBNF</anchor> だったりする。</li><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="9" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[9]</anchor-end> でも流石に <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ASN.1</anchor> は BNF ではないわな。</li><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="10" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[10]</anchor-end> <anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="8" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;8</anchor-internal> SGML 内容モデルの記法は規格本文では構文の定義に使われてる。そしてその使われ方はいかにも BNF(ry</li><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="11" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[11]</anchor-end> 単純な要素の線形連結を<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">間隔</anchor>を置いて並べるだけか、 <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">COMMA</anchor> を挟んで区切るのかの違いって、 BNF か否かに関係するのかな? もともとの BNF や <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">IETF</anchor> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ABNF</anchor> や XML の <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">EBNF</anchor> は間隔だけだけど、 SGML や JIS X 4081 は読点で区切っている。</li><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="12" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[12]</anchor-end> <anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="11" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;11</anchor-internal> 正規表現は区切りに何もいらない。というか (<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">perl</anchor> 拡張とかでない限り) 間隔も入れちゃ駄目。 (間隔も読点もそれ自身として扱われる。)</li><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="13" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[13]</anchor-end> <anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="9" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;9</anchor-internal> ASN.1 は BNF に<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">関数</anchor>を導入しただけにも見える。 (<em>だけ</em>ではない?)</li><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="14" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[14]</anchor-end> まあどれが BNF でどれが BNF でなくても良いが、結局構文記述のためのメタ構文は必然的に同じようなものになってしまうということか?</li></ul></section><section><h1>関連</h1><ul><li>類似した表記法<ul><li><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">正規表現</anchor> ― <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">正規表現</anchor>構文風味の <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">BNF</anchor> についてもこの項を参照。</li><li><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">内容モデル</anchor> ― <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">SGML</anchor> や <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">XML</anchor> の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">要素内容</anchor>の記述用の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">言語</anchor>。</li><li><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ASN.1</anchor></li><li><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">C#の構文記述方法</anchor></li></ul></li><li>関係の深い概念<ul><li><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">生成規則</anchor></li><li><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">再帰降下型構文解析</anchor></li></ul></li></ul></section><section><h1>メモ</h1><ul><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="1" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[1]</anchor-end> <em>About BNF notation</em> <anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="http://cui.unige.ch/db-research/Enseignement/analyseinfo/AboutBNF.html">http://cui.unige.ch/db-research/Enseignement/analyseinfo/AboutBNF.html</anchor-external></li><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="2" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[2]</anchor-end> <em>BNF etc.</em> <anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="http://www.cs.man.ac.uk/~pjj/bnf/bnf.html">http://www.cs.man.ac.uk/~pjj/bnf/bnf.html</anchor-external></li><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="3" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[3]</anchor-end> <em>BNF and EBNF: What are they and how do they work?</em> <anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="http://www.garshol.priv.no/download/text/bnf.html">http://www.garshol.priv.no/download/text/bnf.html</anchor-external></li><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="4" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[4]</anchor-end> <em> 再帰下降構文解析 Recursive Descent Parsing</em> <anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="http://cl.aist-nara.ac.jp/staff/takashi/rec-desc/index.html">http://cl.aist-nara.ac.jp/staff/takashi/rec-desc/index.html</anchor-external></li></ul><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="15" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[15]</anchor-end>
<cite>BNFとプログラム、、、?</cite>
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="http://pc8.2ch.net/test/read.cgi/tech/1096884257/">http://pc8.2ch.net/test/read.cgi/tech/1096884257/</anchor-external></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="18" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[18]</anchor-end> <cite>IRC logs: freenode / #whatwg / 20090906</cite>
(<time>2009-10-17 22:08:59 +09:00</time> 版)
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="http://krijnhoetmer.nl/irc-logs/whatwg/20090906#l-169">http://krijnhoetmer.nl/irc-logs/whatwg/20090906#l-169</anchor-external></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="19" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[19]</anchor-end> <cite>OWL 2 Web Ontology Language Manchester Syntax</cite>
( (<time>2012-10-18 22:45:56 +09:00</time> 版))
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="http://www.w3.org/TR/2012/NOTE-owl2-manchester-syntax-20121018/#The_Grammar">http://www.w3.org/TR/2012/NOTE-owl2-manchester-syntax-20121018/#The_Grammar</anchor-external></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="20" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[20]</anchor-end> <cite xml:lang="ja">バッカス・ナウア記法 - Wikipedia</cite>
( (<time>2013-02-08 04:23:46 +09:00</time> 版))
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="http://ja.wikipedia.org/wiki/%E3%83%90%E3%83%83%E3%82%AB%E3%82%B9%E3%83%BB%E3%83%8A%E3%82%A6%E3%82%A2%E8%A8%98%E6%B3%95">http://ja.wikipedia.org/wiki/%E3%83%90%E3%83%83%E3%82%AB%E3%82%B9%E3%83%BB%E3%83%8A%E3%82%A6%E3%82%A2%E8%A8%98%E6%B3%95</anchor-external></p></section></body></html>