コンパイラ実習
| 授業目的 |
|---|
| C++プログラミング,言語処理系における抽象構文木の表現と操作の手法,lex/yaccによる言語処理等を習得することを目的とする. |
| 到達目標 |
| ・C++基礎的なプログラミングを習得し,継承やポリモーフィズムを用いたプログラミングができる. ・言語の抽象構文木のような木構造のデータ構造を構築できる. ・lex/yaccを用いて字句解析と構文解析を行う処理系を構築できる. ・2,000行程度のプログラムを書き,そのデバッグができる. |
| 授業計画 | |
|---|---|
| 第1回 | C++(1)CからC++へ 【授業外学修】課題のプログラムを完成させて提出すること(3時間) |
| 第2回 | C++(2)標準ライブラリSTL 【授業外学修】課題のプログラムを完成させて提出すること(3時間) |
| 第3回 | C++(3)コンストラクタ,デストラクタ,代入 【授業外学修】課題のプログラムを完成させて提出すること(3時間) |
| 第4回 | C++(4)継承とポリモーフィズム 【授業外学修】課題のプログラムを完成させて提出すること(3時間) |
| 第5回 | 抽象構文木の実装 【授業外学修】課題のプログラムを完成させて提出すること(3時間) |
| 第6回 | 抽象構文木の実装 【授業外学修】課題のプログラムを完成させて提出すること(3時間) |
| 第7回 | インタープリタの実装 【授業外学修】課題のプログラムを完成させて提出すること(3時間) |
| 第8回 | インタープリタの実装 【授業外学修】課題のプログラムを完成させて提出すること(3時間) |
| 第9回 | lexの使用法 【授業外学修】課題のプログラムを完成させて提出すること(3時間) |
| 第10回 | yaccによる抽象構文木の構築 【授業外学修】課題のプログラムを完成させて提出すること(3時間) |
| 第11回 | yaccによる抽象構文木の構築 【授業外学修】課題のプログラムを完成させて提出すること(3時間) |
| 第12回 | yaccによる抽象構文木の構築 【授業外学修】課題のプログラムを完成させて提出すること(3時間) |
| 第13回 | yaccによる抽象構文木の構築 【授業外学修】課題のプログラムを完成させて提出すること(3時間) |
| 第14回 | yaccによる抽象構文木の構築 【授業外学修】課題のプログラムを完成させて提出すること(3時間) |
| 【授業外学修】 | プログラミング実習IIIを履修していることが必須である. コード量が 2,000行程度になるので, プログラミングに自信のない者には履修を勧めない. |