授業の目的 【日本語】 | | 基本的な制御文を備えたプログラミング言語に対するコンパイラを作成することで講義・演習で学んだコンパイラの作成技法を修得し,プログラミング言語に対する理解を深める。また,コンパイラの作成を通してソフトウェア開発プロセスの各フェーズを理解・体験することにより,ソフトウェア開発技法の基礎を修得する。具体的には,ソフトウェア開発の課題に対する適切な分析・設計・実装・テストを行う能力,仕様書などを作成する能力を体得する。 |
|
|
授業の目的 【英語】 | | Throughout implementation of a compiler for a simple programming language with basic control statements, we learn compiler theories learned at lectures and exercises in order to understand programming languages well. In addition, due to each phase of the development process for implementation of a compiler, we master the fundamentals of software development. To be more precise, we learn by experience analysis/design/implementation/tests and how to describe specifications for software development. |
|
|
到達目標 【日本語】 | | 実験を通して基本的なデータ型・制御文を持つプログラミング言語のコンパイラを実現し,講義で学んだコンパイラの作成技術を体得することでコンパイラ設計理論の理解を深める。また,コンパイラ作成を通じてソフトウェア開発プロセスを理解・体験する。 |
|
|
到達目標 【英語】 | | |
|
授業の内容や構成 | | 基本的なデータ型・制御文を持つプログラミング言語に対する構文解析器・字句解析器を作成し,それを利用し対象言語に対するコンパイラを実現する。構文解析器・字句解析器を作成し,その後,中間言語を生成するモジュールを作成する。さらに,言語の機能を段階的に拡充し,それに合わせてコンパイラを改良する。
1. ガイダンス・対象言語と目的コードの理解およびコンパイラの設計
2. 字句解析器・構文解析器の設計
3. 字句解析器・構文解析器の実現
4. 記号表の管理
5. 中間コードの作成
6. 関数呼び出しの実現
7. データ型の拡張
8. 機能拡張 | |
|
|
履修条件・関連する科目 | | |
|
成績評価の方法と基準 | | すべての授業に出席した上で実験課題すべてを実施し,そのレポートすべてについて100点満点で60点以上の点数を取得することを合格とする。 | |
|
|
教科書・参考書 | | 実験担当教員が作成した指導書に従い実施する。実験に使用する機材などは各実験において担当者が指定する。プログラミング2,プログラミング演習2,コンパイラの単位が修得済みであることが望ましい。 | |
|
|
課外学習等(授業時間外学習の指示) | | 実施した実験に対するレポートの作成および調査課題を与える。 | |
|
|
授業開講形態等 | | |
|
遠隔授業(オンデマンド型)で行う場合の追加措置 | | |
|