golangで作るインタープリター読み終わった
golangで作るインタープリター読み終わりました!!!!!!!! 率直な感想はとても面白かったです。 あんまり言語処理系詳しくないんですけど、ソースコードがめちゃめちゃ綺麗でテスト駆動方針なので、非常に読みやすいです。
読む前に知っておいて良かったこと
golangの文法に慣れるのにあったほうがすぐ覚えられる
https://golang.org/doc/code.html
ここに載ってる。たまたま見たことあったけど知ってて良かった。
- コンパイラの大まかな処理
インタープリターまでなので、中間言語生成からの機械語の最適化とかまでは知らなくても問題なかった あくまでレキサーとかパーサーとか。本書にも軽く載ってる
上記のことはないならないで刺激的な情報が得られるんじゃないかな
学んだこと
今ぱっと思いついたものを書いて見た。多分他にもあるじゃないかな...あってほしいな...
所感
真面目に書いて 1 ヶ月くらいで読み終わった golangの構文すごい刺激的だった。type assertionは少し戸惑った。このインタープリターなら他の言語に移植するの難しくなさそうだなって思った。いわゆるコンパイラのフロントエンドと呼ばれる部分の実装だけど、あんまりでかいプログラムを書くことが少ないので、とてもいい経験になったと思う。 個人的にはやっぱり低層の技術が好きなので(だからwebアプリとかモバイルアプリが苦手)コンパイラもちゃんと勉強したいなと思っていて、ASTからの機械語生成の部分を1 から 作ってみたい。本書でも出てきたけど、ガベージコレクタはgolangに依存するので、ここも自分で作れないかなぁと少し思った。 golangは静的な言語でネイティブな機械語を出力できるわけだけど、osが作れないのはここら辺に理由があるのかなぁと考えたりした。
夢が広がる本だなぁ。
https://www.amazon.co.jp/dp/4873118220/ref=cm_sw_em_r_mt_dp_U_gyJlCb1HVVQM2