最高ウデマエ S+12 の id:mizukmb です。
社内勉強会で『雰囲気でコンパイラを書いたら大変だった話』という内容でお話しました。
成果物
ソースコードの読み込み〜構文解析を行います。
解析木を読み込んで実行します。書籍:『RubyでつくるRuby ゼロから学びなおすプログラミング言語入門』の写経コードです。
↓実行結果
=== Source code === if(1 < 3) { 10 + 2 if(1< 10) { 100 } } === AST === ["if", ["<", ["lit", 1], ["lit", 3]], ["stmts", ["+", ["lit", 10], ["lit", 2]], ["if", ["<", ["lit", 1], ["lit", 10]], ["lit", 100]]]] === output === 100
感想
- コンパイラちゃん育成ゲーム欲しい!
- ちょっとずつ言葉を覚えてくれるのでたのしいです!
- 既存言語のインタプリタじゃなくてオリジナル言語作るのすごい
- 実際にやってみるところがすごいと思う!!
- ありがとうございます!
- スライドが簡潔で読みやすい
- Google スライド便利!
- コンパイラ作成はやり始めると楽しそう。しかし沼の匂いも…
- ちゃんと動いた時は感動します
- DB 移行もある中、お疲れ様でした!
- 仕事とプライベートは別にする派なので(?)
- 私は四則演算までしか作らなかった
- ミニマルプログラミング言語良いですね!
- ISUCON もがんばってください!!
- 頑張ります!
- AST がほぼ Lisp
- S 式意識していました
- 自分は挫折しそう
- 私も挫折しかけました…
- 面白い!!
- めちゃ良かったです!
- やったー!!
- 1から言語をデザインしているのか(写経ではなく)
- 全角スペースを許容するのがこの言語の強みです(!?)
- 少しずつ大きくなっていく感がよくわかる発表だった
- レベルを上げて技を覚える感覚があってたのしいです。RPGゲームっぽさがありますね
- コンパイラーの話はムズカシイ
- 私も理解不足なところが多くて未熟な発表になってしまいました…
- ドラゴンブック読むしか
- 買うかー
ありがとうございました!
絵
参考図書
本発表に向けてコンパイラを実装した際に参考にした本です。

- 作者: 中田育男
- 出版社/メーカー: オーム社
- 発売日: 1995/06/01
- メディア: 単行本
- 購入: 7人 クリック: 44回
- この商品を含むブログ (13件) を見る
字句解析、構文解析は『コンパイラ』という本を参考に実装しました(Amazon リンクとなっています)。
RubyでつくるRuby ゼロから学びなおすプログラミング言語入門(紙書籍)www.lambdanote.com
解析木を読み込んで実行するまでは前述した『RubyでつくるRuby ゼロから学びなおすプログラミング言語入門』の中で登場するコードを写経したものを流用しています。