限界を究めるブログでした。最近はいろんな分野を幅広めに書いてます。構文解析はプログラマなら誰しも一度はやったことがあると思います。構文解析には独自の用語がたくさんあります。そこで、初心者に向けて用語の解説をしたいと思います。「非終端記号って何?」「トップダウンとボトムアップはどう違うの?」と疑問に思ってる方は必読です。「置き換えが」終わった記号、終わってない記号のことです。何のことかわかりませんね。wikiの例をみてみましょう。S→AxA→aA→bこの3行はそれぞれ「矢印の左側の記号を右側の記号へ置き換える」という構文を表しています。この構文では、SとAは置き換えが起きていますが、aとbは置き換えが起きていません。SとAが非終端記号、aとbが終端記号です。構文解析したい文字列(入力)は終端記号の羅列です。トップダウン構文解析は、Sという1文字の非終端記号を置き換えていき、入力と同じ形になれるかで正しい構文かを判定します。上の例ではS→Ax→axとなるので、axという入力はこの文法において正しい構文です。bxもS→Ax→bxとなるので正しいです。入力を順に非終端記号に置き換えていき、最終的にSになるか調べる方法を「ボトムアップ構文解析」と呼びます。上の例では、ax→Ax→Sとなるので正しい構文です。構文解析では通常、「構文木」と呼ばれる木構造のデータを構築していきます。この構文木は葉ノードが終端記号、節ノードが非終端記号となるように構築していきます。「トップダウン」では根ノードから葉ノードへ、「ボトムアップ」では葉ノードから根ノードへ向けて変換を行なっていくので、それぞれこのような名前となっています。数式を構文解析してみる数式を構文解析してみます。Expression(足し算式)とします。...(5)(実数の構文はここに書くには長すぎるので簡潔にしました)(1)、(2)というのはどの遷移をつかって変換したかを示すために振った番号です。構文自体とは関係ありません。2と置き換えていくことで得ることができます。複雑な式も解析できます。上の変移をみてわかる通りとても長くなるので割愛します。19:00構文解析に出てくる用語たち関連記事2015-01-10今年こそはアニバーサリー祝います。限界を究めるブログです。までSNSTwitterGitHubHomepageBlog連載リストプライバシーポリシースターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。