コンパイラ

授業目的
計算機による言語処理の基礎,およびプログラムの翻訳とその実行の方式について理解し,簡単なコンパイラをC言語によって実装できることを目的とする.
到達目標
- インタプリタ,JITコンパイラ等の各種言語処理系の概要とそれらの違いを説明できる.
- BNFによる構文記述を理解できる.
- LL(1)およびLR(1)の構文解析表に基づき構文解析の過程を示せる.
- 主な最適化手法について,どのような変換が行われるか説明できる.
- 字句解析および再帰下降解析の手法を理解し,これらに基づくコンパイラのプログラミングができる.
- 生成されたアセンブリコードを参照しながらコンパイラのデバッグができる.
授業計画
第1回講義概要, 言語処理系(コンパイラとは)
第2回字句解析
第3回【演習】 字句解析系の作成
第4回仮想スタック機械
第5回【演習】 仮想スタック機械のアセンブリの演習
第6回構文解析
第7回【演習】 構文解析系の作成(1)
第8回【演習】 構文解析系の作成(2)
第9回構文解析の自動化
第10回【演習】 構文解析系の作成(3)
第11回最適化
第12回【演習】 構文解析系の作成(4)
第13回平常試験
第14回【演習】 構文解析系の作成(5)