本書は、プログラミングやコンピュータに興味を持つ方が、コンパイラの原理と構造を基礎から理解するための教科書です。著者が2006年から2021年までの間担当した東北大学工学部の学部専門科目「コンパイラ」の講義内容を基にしています。
本書のねらいをご理解頂くため、その経緯を説明します。「コンパイラ」講義の設計のため種々の教科書を調査しましたが、私の意図に合致するものは見つかりませんでした。例えば中田育夫先生によるコンパイラ開発のための優れた教科書はありましたが、私の意図は、一般の方がコンパイラの原理を学べる教科書でした。この観点からは、コンパイラの「理論」の教科書も満足いくものではありませんでした。伝統的に理論の中心課題であったLR構文解析についても、その詳細な理論の説明のわりに本質を理解できる教科書は見つかりませんでした。そこで、書き下ろしのスライドを作成し講義を行いました。講義スライドは公開しており、いくつかの評価を頂きました。例えば、その内容を契機に依頼された解説論文「LR構文解析の原理」は賞を頂きました。それらを励みに、16年間講義し、改良をつづけました。
本書は、このような経緯の下、2021年のコロナ禍で変則的に増えた時間を使い執筆したものです。その趣旨を、共立出版さんにご賛同・理解頂き、出版頂きました。本書を通じて、
- 計算の原理とコンパイラの本質
- 文脈自由のプログラム解析手法、特に、LR構文解析の原理
- 文脈依存のプログラム解析の必要性とその枠組みとしての型理論及び型推論
- プログラムの操作的意味の定義とインタープリタの構築法
- 抽象機械と機械語生成の枠組み
などの理解につながれば、望外の喜びです。 本書の副題「原理と構造」は、これらの理解を目指す本書の意図を反映したものです。