LL構文解析表の作成とは? わかりやすく解説

Weblio 辞書 > 辞書・百科事典 > ウィキペディア小見出し辞書 > LL構文解析表の作成の意味・解説 

LL(1)構文解析表の作成

出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2020/01/06 06:27 UTC 版)

LL法」の記事における「LL(1)構文解析表の作成」の解説

構文解析表を作成するためには、非終端記号 'A' がスタックトップにあり、記号 'a' が入力バッファ先頭にある場合適用すべき文法規則決定しなければならないそのような規則はA → w という形式であり、さらにw に対応する言語に、先頭が 'a' の文字列少なくとも1つ存在する場合限られることは簡単に分かるこのため文字列 w の先頭になりうる終端記号集合 (First-set) を Fi(w) で表す。また、w が空文字列可能性もある場合Fi(w)に ε を加える。A1 → w1, ..., An → wn という規則群から構成される文法があるとき、Fi(wi) と Fi(Ai) を各規則について以下のように求める。 各 Fi(wi) と Fi(Ai) を空集合初期化する。 各規則 Aiwi について、Fi(wi) を Fi(Ai) に追加する。ここで、Fi は以下のように定義される:Fi(a w' ) = { a } 、a は すべての終端記号 Fi(A w' ) = Fi(A)、A は非終端記号で、Fi(A) には ε は含まれないFi(A w' ) = Fi(A) \ { ε } ∪ Fi(w' )、A は非終端記号で、Fi(A) には ε が含まれるFi(ε) = { ε } 各規則 Aiwi について Fi(wi) を Fi(Ai) に追加するステップ2と3を全 Fi 集合変化しなくなるまで繰り返す。 なお、First-set だけでは構文解析表は完成しない。これは、規則右側の w が空文字列書き換えられる可能性があるためである。従って構文解析器はεがFi(w)含まれるとき、規則 A → w を使い A の後に続く可能性のある記号考慮しなければならない。つまり A に続く記号集合 (Follow-set) も必要で、これを Fo(A)表記する。これは、記号列が αAaβ となるような終端記号 a の集合であり、開始記号から規則適用していくことで導出される。各非終端記号についての Follow-set は以下のように求められる: 各 Fo(Ai) を空集合初期化するAj → wAiw' という形式規則がある場合終端記号 a が Fi(w' ) に含まれるなら、a を Fo(Ai) に追加する。 ε が Fi(w' ) に含まれるなら、Fo(Aj) を Fo(Ai) に追加するステップ2全ての Fo 集合変化しなくなるまで繰り返す。 以上で構文解析表の各マスにどの規則入れるかが決定される非終端記号 A と終端記号 a に対応する表のマスを T[A, a] で表したとき、以下が成り立つ。 T[A,a] に規則 A → w が入るのは以下の場合だけである。a が Fi(w)含まれるか、または ε が Fi(w)含まれ、a が Fo(A)含まれる構文解析表の各マス高々1つ規則だけが入る場合構文解析器バックトラッキングなしで常にどの規則適用すべきかを判断できる正確には、そのような場合文法を「LL(1)文法」と呼ぶ。

※この「LL(1)構文解析表の作成」の解説は、「LL法」の解説の一部です。
「LL(1)構文解析表の作成」を含む「LL法」の記事については、「LL法」の概要を参照ください。


LL(k)構文解析表の作成

出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2020/01/06 06:27 UTC 版)

LL法」の記事における「LL(k)構文解析表の作成」の解説

1990年代中ごろまで、k が 1 より大きい LL(k)構文解析はほとんど実用化されなかった。というのも、k が増える指数関数的に構文解析表が大きくなるためである。この状況変えたのは1992年PCCTS登場である(現在ではANTLR呼ばれている)。PCCTS多くプログラミング言語LL(k)構文解析器効率的に構文解析でき、最悪ケース問題発生しないことを示した。さらに、先読み限定されていてもLL法有効な場合もあることが示された。一方従来からの構文解析器生成ツールyaccbison)はLALR(1)構文解析表に基づいており、限定され先読みによるLR法使っている。

※この「LL(k)構文解析表の作成」の解説は、「LL法」の解説の一部です。
「LL(k)構文解析表の作成」を含む「LL法」の記事については、「LL法」の概要を参照ください。

ウィキペディア小見出し辞書の「LL構文解析表の作成」の項目はプログラムで機械的に意味や本文を生成しているため、不適切な項目が含まれていることもあります。ご了承くださいませ。 お問い合わせ



英和和英テキスト翻訳>> Weblio翻訳
英語⇒日本語日本語⇒英語
  

辞書ショートカット

すべての辞書の索引

LL構文解析表の作成のお隣キーワード
検索ランキング

   

英語⇒日本語
日本語⇒英語
   



LL構文解析表の作成のページの著作権
Weblio 辞書 情報提供元は 参加元一覧 にて確認できます。

   
ウィキペディアウィキペディア
Text is available under GNU Free Documentation License (GFDL).
Weblio辞書に掲載されている「ウィキペディア小見出し辞書」の記事は、WikipediaのLL法 (改訂履歴)の記事を複製、再配布したものにあたり、GNU Free Documentation Licenseというライセンスの下で提供されています。

©2024 GRAS Group, Inc.RSS