言語処理系(コンパイラとインタープリタ)の入門で、その理論と技法の基礎を 解説する。簡単なCコンパイラを例に内部の仕組みを具体的に紹介する。
この講義は、言語処理系、すなわちプログラミング言語のコンパイラとインター プリタのしくみを習得するのが目的である。目標としては、簡単な言語処理系 を作成できるようになることである。
講義を行い、実際の経験を課題で積んでもらいながら進める。 大体、次のような手順で進める。
http://www.hpcs.cs.tsukuba.ac.jp/~msato/lecture-note/comp2014/
http://www.hpcs.cs.tsukuba.ac.jp/~msato/lecture-note/comp-lecture/contents.htmlこれまでの講義資料が
http://www.hpcs.cs.tsukuba.ac.jp/~msato/lecture-note/にあるが、同じとは限らないので参考程度にしてほしい。
http://www.hpcs.cs.tsukuba.ac.jp/~msato/lecture-note/comp-lecture/tiny-c-note1.html
comp-lecture@hpcs.cs.tsukuba.ac.jpメールのsubjectは、
comp report 課題番号とし、最初に学籍番号、氏名を明記すること。特に、最終の課題については重 視する。 なお、このメールアドレスは学内のアドレスのみうけつけるので、 coinsのアカウントから、だすこと。
comp-lecture@hpcs.cs.tsukuba.ac.jpまで。 なお、このメールアドレスは学内のアドレスのみうけつけるので、 coinsのアカウントから、だすこと。
日時 | 時限 | 内容 | 講義資料 |
---|---|---|---|
1月6日 | 3時限 | 言語処理系とは |
[講義資料1] |
4時限 | 基本:式の処理 | ||
5時限 | 字句解析の基礎 | [講義資料2] |
|
6時限 | 演習 | 課題 1: 式のインタプリタ | |
1月13日 | 3時限 | top-down parserの作り方 | [講義資料3] |
4時限 | 構文解析の基礎 | [講義資料4] | |
5時限 | 構文解析の実際:yaccの使い方 tiny Cのデータ構造 |
[講義資料5] [講義資料tinyC-1] [講義資料tiny C-2] [講義資料tiny C-3] |
|
6時限 | 演習 | 課題 2: 数式インタプリタの製作 | |
1月27日 | 3時限 | tiny C のインタプリタ(1) | [講義資料6] |
4時限 | tiny C のインタプリタ(2) | [講義資料7] | |
5時限 | tiny C のインタプリタ(3) | ||
6時限 | 演習 | 課題 3:tiny-Cインタープリタによる8クイーンの実行 | |
2月3日 | 3時限 | 中間試験 | |
4時限 | スタックマシンとコンパイラ |
[講義資料8] |
|
5時限 | スタックマシンへのコンパイラ |
[講義資料9] |
|
6時限 | 演習 | 課題 4: スタックマシンへの数式のコンパイラの製作 | |
2月10日 | 3時限 | レジスタマシンへのコンパイラ | [講義資料10] |
4時限 | コード最適化入門 |
[講義資料11] |
|
5時限 | (予備) | ||
6時限 | 演習 | 課題 5:レジスタマシンへの数式のコンパイラの製作 |