パーサーとは (1)

プログラミングHaskellより。

パーサーとは、文字列を取り、文字列の文法構造を表現する曖昧さのない構文木を返すプログラムである。

曖昧さをなくすってのが大事なんだろう。

たとえば、文字列 "2 * 3 + 4"が与えられたとき、数式のパーサーは以下のような形の構文木を生成するだろう。

    +
   / \
  *   4
 / \ 
2  3

この構文木の構造から、演算子+とは二つの引数をとり、+よりもの結合順位の方が高いことが明らかである。

この構文木をどうやって型(クラス)で表現するかも大事そう。

ほとんどの実用的なプログラムは、入力をあらかじめ処理するためにパーサーを使うので、パーサーはコンピュータの重要な分野だ。たとえば、電卓プログラムは数式を評価する前に構文を解析し、HugsHaskellのプログラムを実行する前に構文を解析し、また、Webブラウザはハイパーテキスト文書を表示する前に構文を解析する。

すごいすごい、解析しまくりだ。

入力の構造を明確にしておけば、以降の処理が格段に簡単になる。

たしかに!現実世界から、プログラミングの世界に移すにはすべてパーサーが必要そう!