プログラミング言語処理(情報学類、平成14年度、2学期 、火曜日 1、2 時限)
お知らせ:
- 9回目のサンプルコード(compile_func.c:199)にバグ
の指摘を受けましたので、訂正しておきました。
- 課題レポートの最終〆切は
12月 3日(火曜日)
です。この講義では、特に課題レポートを重視しますので、できるだけ、提出
してください。
- 担当: 佐藤 三久
- 内容:(便覧掲載概要)
言語処理系(コンパイラとインタープリタ)の入門で、その理論と技法の基礎を
解説する。簡単なCコンパイラを例に内部の仕組みを具体的に紹介する。
この講義は、言語処理系、すなわちプログラミング言語のコンパイラとインター
プリタのしくみを習得するのが目的である。目標としては、簡単な言語処理系
を作成できるようになることである。
これまでの経験から、話を聞いただけでも理解が進まないようなので、演習問
題で実際に簡単な言語処理系を作ってもらいながら、講義を進めることにする。
大体、次のような手順で進める。
- 字句解析と構文解析の基礎として、式の評価をするプログラム(つまり、電卓のようなもの)を
作って見る。
- インタープリターの基礎として、ごく簡単なLispインタプリターを作る。
- 構文解析、コード生成の練習のために、C言語風の手続き型言語のコンパ
イラを作る。
- 時間があれば、コードの最適化について、触れる。
- 毎回、講義のはじめにその回の講義の内容に関する資料を配布する。その資料は、
http://www.hpcs.is.tsukuba.ac.jp/~msato/lecture-note/comp2002/
にて公開する。講義の進め方については、昨年度の講義資料
http://www.hpcs.is.tsukuba.ac.jp/~msato/lecture-note/comp2001/
にあるが、同じとは限らないので参考程度にしてほしい。
- 参考書については、ほとんどのコンパイラの教科書には含まれている内
容である。特に、推薦するものについては講義の中で紹介する。
- 講義と演習で進めるが、ほぼ毎回、演習問題を出して演習を行ってもら
う。特に、演習の時間を取らないが、宿題としてあいている時間を使ってやる
こと。課題の解答については、プログラミング言語としては、C言語を中心と
するが、Java言語ほか、要求を満たす言語であれば、なにの言語で書いてもよ
い。
課題の解答については、E-mailで提出すること。テキストで、あて先は
comp-lecture@hpcs.is.tsukuba.ac.jp
メールのsubjectは、
comp report 課題番号
とし、最初に学籍番号、氏名を明記すること。課題の提出は、原則として、
課題が出された2週間後を目安とする。特に、最終の課題については重視する。
- 講義の中間と終わりに、簡単な小テストを行う。
- 成績は、演習課題の提出状況、小テストの結果、出席状況を加味し決めることにする。
- 質問に関しては、講義の中で質問はもちろん歓迎するが、E-mailでの質問も受け付ける。あて先は、課題の提出先のアドレスと同じ
comp-lecture@hpcs.is.tsukuba.ac.jp
まで。
講義資料