目次は,共立出版株式会社の本書紹介ページを参照. 本サイトでは,各章の狙いやポイントを紹介する.
-
まえがき
コンパイラを学ぶ意味と本書の狙い,概要などを紹介. -
第1章 計算とプログラミング言語
情報の表現と計算の原理,さらに万能チュリング機械の構築の原理などを基礎に, プログラミング言語処理系(インタープリタとコンパイラ)実現の構造を学ぶ. -
第2章 SML#チュートリアル
第1章で定義したチューリング機械が行う計算を表現する言語「チューリング言語」の処理系の作成を通じて, 本書で用いるコンパイラ記述言語であるSML#プログラミングを学ぶ. -
第3章 文字列の性質と文字列処理
この章以降,言語を階層的に定義し,その定義に従い,解析方法を学ぶ. 最も低レベルの階層は,文字列としての言語の定義と解析である. 本章では,文字列の構造と性質を理解したあと,文字列を読み込みそのままプリントする コンパイラのスケルトンを開発する. -
第4章 字句解析
本章では,言語を語彙列と捉え,正規言語に基づく語彙の定義と解析手法を学ぶ. 特に,正規言語の集合の定義と正規表現の関係を理解し,各正規表現から その正規表現が表示する正規言語を受理するオートマトンの構築方法を学ぶ. -
第5章 構文解析
本章では,言語を,文脈自由文法で定義される文の集合と捉え,その定義と解析方法を学ぶ. チョムスキーによる生成文法の考え方と文脈自由文法の解析の枠組みを理解し,LR構文解析の 考え方と原理を理解する. -
第6章 型の解析と型推論
およそすべての言語には,名前の参照関係に代表される文脈依存の制約があり, それらの制約を満たさない文字列は,言語の文とは見なされない. 文脈自由文法による構文構造の定義は,本来の意味での言語の文法の近似にすぎない. 近代的なプログラミング言語では,文脈依存の制約は,型理論に基づく型システムで定義される. 本章では,型理論の考え方を理解し,型システムが課す制約の解析手法である 型推論アルゴリズムの構築方法を学ぶ. -
第7章 インタープリタ
チューリングによる万能計算機の構築手法は,言語の観点からは,インタープリタの構築手法と見なせる. 本章では,インタプリタの系統的な開発手法である操作的意味論を学び,再帰関数,高階の関数,さらに, 多相型システムを持つCoreML言語を定義し,そのインタープリタを開発する. -
第8章 抽象機械へのコンパイル
コンパイラは,言語の各文を,同一の意味をもつ別な言語の文に翻訳するプログラムである. 本章では,歴史的に重要な抽象機械であるSECD機械を定義し,第7章で定義した関数型言語をSECD機械語コードに 翻訳する手法および翻訳の正しさの証明手法を学ぶ.さらに,CoreML言語のSECD機械へのコンパイラを完成 させる.