2章が全て理解できたらJulia版dragon book front-endを作ります(移植します)。
で、後で気がついたのですが、purple dragon bookのAppendix Aに全ソースコードが公開されていてかつstanfordのサイトでもtarファイルでソースコードが公開されているのですが、これってpublishedされた時点でcopyrightだなーと。
派生物としてJulia版を公開するとき、LICENSEは結構デリケートな問題になりそうなので、必要なコード断片をgist経由で本blogに掲載するに止め、公開はやめとくことにしました。すみません。ただコード断片で重要な箇所は提示できると思いますし、実際に動いてできたLLVM IRや実行結果もコンソール表示として確認できるので、まぁ、公開してほしい人がコンタクトを取ってこない 限りいいかなぁ、と。
というわけで、priority listは次の通りです♡
- purple dragon book 2章の完全理解
- Julia版dragon book front-end作成(出力はLLVM IR)
- purple dragon book 3章の理解(を進めながら)
- (2.)のfront-endを上から下まで(ソースコード入力からELF(Linux,MacOS X)までのパスを通す仕組みを作る(C/C++のコーディングの必要があるかもしれません)
- 3章の理解を元に、Lexical scanner generatorの作成
- flex(1)のソースコードリーディング(NFA/DFAの求め方、テーブルの作り方、UTF-8対応)
- JLexのソースコードリーディング(RegExpのdescendant parser周りを見ながら、正規表現parserをどうやって作るか学習する
- 4章を理解する
- LL(1)
- SLR(1)
- LALR(1)
- 以上三つのどれか一つを作ってみる!
- bisonなどを参考にする
こんな感じでしょうかー。
なんだか作業メモみたいになっちゃってすみません。
次のエントリーでは2章でどんなことを学んだか展開できるといいなと思います。
0 件のコメント:
コメントを投稿