本
コンパイラ―原理・技法・ツール (Information & Computing)
- 作者: A.V.エイホ,R.セシィ,J.D.ウルマン,M.S.ラム,Alfred V. Aho,Jeffery D. Ullman,Ravi Sethi,Monica S. Lam,原田賢一
- 出版社/メーカー: サイエンス社
- 発売日: 2009/06
- メディア: 単行本
- 購入: 1人 クリック: 128回
- この商品を含むブログ (29件) を見る
言わずと知れた名著大賞
今年の初めD言語の.NETバインディング作るぞーとなっていた時期があり,まずは簡単に言語自作してからだろうと読んでた.これは完全に気のせいで,ドラゴンブック読んでたの去年の10月だった.まあ気にしないことにしよう.
その時の成果物がこれ
github.com
F#+FParsecでパースして後はC#で意味解析+コード生成..NETはリフレクションが標準ライブラリでカバーされていてバイナリ生成からマシン語の出力まで簡単にできる.で,文とか関数宣言とか変数宣言とかはできるようにして,main関数で1+1とか計算して関数の戻り値がexeのステータスコードになってるぞやったーという所までは到達したんだけど,Hello Worldのために文字列を導入しようとしたら,型の扱い方が良くわかんなくなって無になった.
具体的に読んだ場所は構文解析からコード生成の辺りだったと思う.後半の最適化とかの所は全然読んでない.ドラゴンブックは文脈自由文法でパースしてレジスタマシンのコード生成をする流れなので,PEG*1+スタックマシン*2でやったC±には直接活かせない部分も多かった.基本ブロックを用いた意味解析の所とかは参考になったかな.やっぱりスタックマシンはサイコーだよ,AST舐めてその順に命令発行して終わり!だからね.
評価:✅✅✅
目的には合わなかったけれども勉強にはなった.虎本とか他のコンパイラ本も読んでみたいね.
http://amzn.asia/bWZ8TBe
このURLに意味はあるのでしょうか.決めるのはあなたです.