タイガーブック(1)
コンパイラを作りたいのであれば、チャプター2からやればいい?って感じ。githubとかに完成品がたくさんゴロゴロ転がっているので、困ったらそれを見ればいいみたいな。
ちょっとずつ指針を書いていって実装していこうかなって思ってる。
チャプター2では、字句解析器の実装。 タイガーブックだと字句解析器ジェネレータとして、ML-Lexを使っている。
一応、字句解析器というのは、トークンに分ける作業のこと。
123+123;
こういう入力があった時に、123は数字で、+は"足す記号"、123は数字、;はセミコロンというように、順次認識してく過程。
この章は、ML-Lexの書き方をちゃんと理解するような章かな。 アルゴリズム実装はない感じがした。 いじるのは、配布されているディレクトリのchap2/tiger.lex。
ここに書いて、CM.make "sources.cm";して、parseして、、、っていうのをやって、字句解析過程を進めていく。わかんないとこは調べながら。
やっぱ完成品を理解していく方が早いな^^
golangのインタープリタ実装だと、フロントエンドも自分で書いてたので、ツールの使い方の勉強だと思えばまぁ楽しいのかな。