授業の目標と概要 |
プログラムを解析してコンピュータで実行可能な形式に変換するための基礎理論や、コ
ンパイラがオートマトンの具体的な応用の一つであること理解するとともに、字句解析
器や構文解析器の自動生成ツール等の応用を学ぶことを目標とする。
これまでに学んだC言語やJava言語などのコンパイラが、どのような仕組みで動作して
いるのかを理解することができる。
|
履修上の注意
(準備する用具・
前提とする知識等)
|
コンパイラの理論はオートマトンを用いることを前提とするので、4年次のオートマト
ンの授業内容を確認しておくと良い。
また、授業の進行に合わせて適宜レポートを課す。
|
到達目標 |
字句解析の仕組みが理解できる。
文法定義の表現が理解できる。
構文解析の仕組みが理解できる。
構文木の意味づけが理解できる。
コード生成の仕組みが理解できる。
|
成績評価方法 |
合否判定:2回の定期試験の結果の平均が60点以上であること。
最終評価:2回の定期試験の結果の平均±レポート等10%による総合評価とする。
再試験:不合格であった定期試験の範囲それぞれに対して、出題した問題について60%以上得点することを合格の条件とする。
|
テキスト・参考書 |
教科書:佐渡一広・寺島美昭・水野忠則著 コンパイラ (共立出版)
参考書:村上列訳 lex & yacc プログラミング (アスキー出版局)
参考書:富田悦次、横森 貴 共著 オートマトン・言語理論 (森北出版)
参考書:米田政明 他 オートマトン・言語の基礎 (近代科学社)
|
メッセージ |
コンパイラの仕組みを理解することで、プログラミング言語の制限の理由なども知ること
ができます。
|
授業の内容 |
授業項目 | 授業項目ごとの達成目標 |
プログラムと言語の動作原理(1回)
字句解析(2回)
文法(1回)
下向構文解析(2回)
yaccによる構文解析(1回)
|
プログラムの動作原理とプログラミング言語の基礎原理を説明できる
字句解析でのトークン処理を説明できる
文法の意義とBNFによる表現を説明できる
下向構文解析法の動作原理と構成方法を説明できる
yaccを使った構文解析器生成の概念を説明できる
|
前期中間試験 |
実施する
|
上向構文解析(3回)
構文木と意味づけ(2回)
コード生成(2回)
|
上向構文解析法の動作原理と構成方法を説明できる
構文木に対する意味づけの処理を説明できる
意味づけされた構文木に対応するコード生成の処理を説明できる
|
前期期末試験 |
実施する
|