トップダウン構文解析のソースを表示
←
トップダウン構文解析
ナビゲーションに移動
検索に移動
あなたには「このページの編集」を行う権限がありません。理由は以下の通りです:
この操作は、次のグループに属する利用者のみが実行できます:
登録利用者
。
このページのソースの閲覧やコピーができます。
'''トップダウン構文解析'''(トップダウンこうぶんかいせき、{{lang-en-short|Top-down parsing}})は、[[構文解析]]において、[[構文木]]を、最上位の非終端記号から始めて、それを順次右辺の記号列へと書き換えていくような手順によって導出する構文解析の戦略である。逆は[[ボトムアップ構文解析]]。 == プログラミング言語の場合 == 一般に、[[コンパイラ]]や[[インタプリタ]]は、[[入力]]である、ある[[プログラミング言語]]で書かれた[[ソースコード]]の[[文字列]]を、[[構文解析器]]を通して内部的な表現に変換する。以上はその文法を問わず、またトップダウン構文解析に限らない話である。 以下では対象のソース言語の文法が文脈自由文法であるとする。 トップダウン構文解析では、入力全体が、文脈自由文法の最上位の生成規則の左辺の非終端記号にマッチするはず、とまず仮定して構文解析を始める。そして、入力文字列に生成規則を適用していく際に、左端の記号からマッチングさせていき、[[非終端記号]]が出てくるたびにさらに生成規則を適用していく。このようにすると構文解析は生成規則の右辺の左端から開始され、左端から非終端記号を評価していくことになる。つまり、ある生成規則を適用してもその右辺の左端から順に評価していくため、途中で非終端記号が出てくるとさらに別の生成規則を適用する、という入れ子的動作をする。 例えば、次のような生成規則があるとする。 * <math>A \rightarrow aBC</math> * <math>B \rightarrow c|cd</math> * <math>C \rightarrow df|eg</math> A から開始するとした場合、最初に <math>A \rightarrow aBC</math> にマッチし、次に(その右辺を左から評価していく過程で)<math>B \rightarrow c|cd</math> にマッチする。その後、<math>C \rightarrow df|eg</math> が適用される。ある非終端記号に関する生成規則の右辺の記号列群において、記号列の先頭に現れる終端記号により、唯一の記号列が決定可能であれば、LL(1) 文法で構文解析できる。ここで、(1) とは[[構文解析器]]が先読みする必要があるトークンの数を表している。終端記号ひとつで決定できない言語では、LL法を使って構文解析するには、1つ以上の先読みが必要となる。 == 関連項目 == * [[ボトムアップ構文解析]] * [[再帰下降構文解析]] * [[LL法]] * [[句構造規則]] [[Category:構文解析アルゴリズム|とつふたうんこうふんかいせき]] [[ru:Метод рекурсивного спуска]]
このページで使用されているテンプレート:
テンプレート:Lang-en-short
(
ソースを閲覧
)
トップダウン構文解析
に戻る。
ナビゲーション メニュー
個人用ツール
ログイン
名前空間
ページ
議論
日本語
表示
閲覧
ソースを閲覧
履歴表示
その他
検索
案内
メインページ
最近の更新
おまかせ表示
MediaWiki についてのヘルプ
特別ページ
ツール
リンク元
関連ページの更新状況
ページ情報