インタプリタを作っている

Go言語でつくるインタプリタを読んでいる。 前々から何かプログラミング言語を作ってみたかったので買ってみた。 まだハッシュマップとかマクロとか実装していないけど一旦紹介。

本の目次

内容

本書ではmonkeyというC言語風の言語を実装していく。 実装の仕方はmonkeyのインタプリタ実装に必要な物を 1. テストを書く 2. テストをする 3. 最小限必要な単位で実装する 4. テストをする 5. 実用的な範囲まで拡張して実装する

といったテスト駆動開発の手法を用いて進めていく。 テスト内容もGolangのスライスで管理しているため、簡単にテストケースを増やせる。 そのため新しく機能を実装しようと思った時でも簡単にテストと実装を繰り返すことができる。

字句解析

この章では入力されたソースコードトークンへ変換する。 主に入力されたソースコードをどこまで読んだか、どのトークンへ変換するか機能を実装する。

構文解析

前章で作成した字句解析器を利用しASTを作れるよう実装していく。

評価

ASTを解釈、評価していく。 このあたりで計算や関数の作成ができるようになる。

インタプリタの拡張

真偽値や数値以外に文字列や配列、ハッシュマップを実装する。 今はここまでやった。

終わりに

まだもう少しだけ実装する内容が残っているので早く読み進める。