Skip to content

Instantly share code, notes, and snippets.

@omasanori
Last active December 12, 2023 19:19
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save omasanori/de63e0b71f470889dbef3d79295d9b78 to your computer and use it in GitHub Desktop.
Save omasanori/de63e0b71f470889dbef3d79295d9b78 to your computer and use it in GitHub Desktop.
mstdn.maud.io Advent Calendar 2023 12/12

omasanori推薦 よかった本大賞 2023

どうも、omasanoriです。今年読んだ本のなかでも一推しの1冊(正確には2冊)を紹介します。それはEssentials of Compilation(MIT Press)です。

x86-64向けの小さなコンパイラをインクリメンタルに書く本。Racket(Scheme系Lispの一種)でRacketのサブセットを実装する本PythonでPythonのサブセットを実装する本の2バージョンある。

どのような事柄を学べるかについては https://scrapbox.io/prog-lang-sys-ja/Essentials_of_Compilation を参照。

この本のいいところはインクリメンタルに書くという点。よくあるコンパイラ本は最後の方まで追わないとコンパイラとして動くプログラムが得られず、途中で挫折しがち。この本は数を書いた「ソースコード」を入力するとその数が返り値になるプログラムを出力する小さな小さなコンパイラから徐々に発展させていく。

この説明を読んでAn Incremental Approach to Compiler Constructionという文章を思い出す方もいるかもしれない。この本はまさにその文章の由来となったコンパイラの大学講義の資料が元になっている。

もし可能なら日本語訳の出版に喜んで協力したい、英語で書かれていることを理由に手に取るのを躊躇する人がいたらその後押しをしたいと思うくらいのコンパイラ本です。

コンパイラに興味があるけど難しそうだなと思う人、コンパイラ本で挫折した経験がある人、そういう人たちこそ、ぜひ読んでほしい。

今年は:don:で何度かこの本に言及しましたが、年越し前にもう一度推したかったので推しました。年末年始はコンパイラを書こう!

ちなみに、ここだけの話ですが https://github.com/IUCompilerCourse/Essentials-of-Compilation で全文を読めます。実はここだけの話でもなく公になっている話です。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment