vortispy's diary

日記です

"Writing An Interpreter In Go"を読んだ

Writing An Interpreter In Go | Thorsten Ball
細かいことはよくわからんがとにかくインタプリタを作れる。
実際そういう内容である。字句解析、構文解析、評価、全部自分で実装する。一番わかりやすそうなやり方でやる。効率がどうのだとかめんどくさいことは気にしない。目的はインタプリタを作ることなんだからそれで良いのだ。だからといってソースが雑ってこともない。楽しい。
文章は英語だけど気にしないで良い。重要なことは全部ソースコード見ればわかるわかる。テストも書くし動けばオッケー。
そんなにGo言語詳しい必要もない。"A tour of Go"のBasicsとMethods and interfacesまでの内容がわかれば十分だ。Goroutineなんかは出てこない。
A Tour of Go
3章に入ると自作インタプリタが動き出してたまらん。なんか「うおー」ってなる。プログラミングはじめたときの気持ちをちょっと思い出す。これだよこれ。
色んな機能が足りてないのはわかる。ガベージコレクションは完全にGo言語に依存してるし、最適化なんて考えてない。それでもこの本が良いのは自分で「作れる」ということだ。なにか機能が欲しいなら自分で作れる。そういう気持ちになれるのが重要な気がする。
「知識は無いけどコンパイラつくってみたい」人にはおすすめだ。なにもわからないままでいるよりはちょっとだけでも理解できたほうがいい。なによりやっぱり楽しい。