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