『RubyでつくるRuby ゼロから学び直すプログラミング言語入門』を読み終わった

f:id:miyohide:20171107215659j:plain

RubyでつくるRuby ゼロから学び直すプログラミング言語入門』を読み終わりました。

RubyでつくるRuby ゼロから学びなおすプログラミング言語入門

RubyでつくるRuby ゼロから学びなおすプログラミング言語入門

本書は、@tatsuosakurai さんが主催しているオンライン読書会で題材となった本。コードが出てきたら写経をしつつ、あれこれとみんなで意見を言いながら読んでいたので時間はかかりましたが、しっかりと中身を理解して読了することができました。みんなで読み進めると脱落しづらくなるので良いですね。

昔、『ふつうのコンパイラをつくろう 言語処理系をつくりながら学ぶコンパイルと実行環境の仕組み』を読もうとしてそのページ数(600ページあまり)に挫折したのですが、『RubyでつくるRuby』は130ページあまり。このコンパクトさも魅力です。

これをきっかけに『ふつうのコンパイラをつくろう』も読めちゃうのでは?とちょっと思ったり。

概要

「はじめに」を読むと、本書は

Rubyの中で特に重要な言語機能だけを抽出した言語MinRubyを使ってMinRubyのインタプリタを作ります。

とのことで、これだけを読むとなんだか難しそうですが、1章から3章ぐらいまでは「変数とは?」とか「if文とは?」みたいなことから書いてあって非常に丁寧に書かれています。

4章の電卓の実装から徐々に難易度が上る感じですが、ときどき出てくる挿絵キャラクターの可愛さに癒やされながら読み進めることができました。

f:id:miyohide:20171107215742j:plain
私のお気に入りキャラクタであるミドリロボ(と勝手に名付けている)。実はこの子、本書を読み進めるにつれて劇的な変化が...

これから

インタプリタを作成することが130ページあまりの書籍で実装できた理由の一つに、第4章から出てくるライブラリ「minruby」があります。本書では「minruby」の内部実装については一切触れていませんでしたが、1ファイル170行で実装ですし実装を読んでみようかと思っています。