プログラミング言語論 |
Principles of Programming Languages |
開講部 | 工学部 |
開講学科 | 情報工学科 |
開講学年 | 2年次 |
開講時期 | 後期 |
単位数 | 2 |
単位区分 | 選択必修 |
系列区分 | 専門 |
講義区分 | 講義 |
教育目標 | B-3 |
准教授 | 篠埜功 |
1. | プログラミング言語の意味記述、特に公理的意味論、操作的意味論について理解し、単純な言語で書かれた短いプログラム例についてこれらの意味論で意味を記述することができるようになる。 |
2. | 変数の有効範囲(静的有効範囲、動的有効範囲)について理解し、単純なプログラム例について、変数の有効範囲の決め方によりプログラムの意味がどのように変わるか説明することができるようになる。 |
3. | 主要な引数機構について理解し、単純なプログラム例について、引数機構によりプログラムの意味がどのように変わるか説明することができるようになる。 |
4. | プログラミング言語の計算モデルによる分類について説明することができるようになる。 |
5. | 単純なプログラムについて、型について整合性があるかどうかを、与えられた単純な型システムに従って判定することができるようになる。 |
【授業計画】 | 【授業時間外課題(予習および復習を含む)】 | |
1. | プログラミング言語の分類、簡単な言語の例 ・命令型言語、関数型言語、論理型言語、オブジェクト指向言語 ・簡単な言語の例 --- Little Quilt言語 | 参考書8.1節を予習。 |
2. | 命令型言語(1) ・代入 ・構造化プログラミング ・制御フロー | 参考書3.1節, 3.2節, 3.3節を予習。 |
3. | 命令型言語(2) ・break文、continue文、goto文、return文 | 参考書3.4節を予習。 |
4. | 命令型言語(3) ・文の翻訳 ・短絡評価 ・表明 | 参考書p.109, p.87を予習。 |
5. | 命令型言語(4) ・Hoare triple ・Hoare論理 | 参考書3.6節を予習。 |
6. | 命令型言語(5)、小テスト ・手続き ・引数機構 ・変数の有効範囲 | 参考書5.2節、5.3節を予習。 |
7. | 操作的意味論(1) ・C言語の小さなサブセットに関する操作的意味 --- 式の意味の定義 --- 文の意味の定義 | 参考書13.3節に操作的意味論の説明があるが、関数型言語に関するものである。講義で紹介するのは命令型言語に対するものであり、少し異なるが、考え方は同じである。命令型言語には代入があるため、状態の変化を扱う必要がある。これに関して参考書には載っていない。どのように定義すればいいか自分で考えてみる。 |
8. | 中間試験 ・第1回から第7回までの内容の理解を確認する筆記試験を実施し、終了後解説を行う。 | これまでの内容を復習しておく。 |
9. | 型システム ・C言語における変数宣言 ・C言語の小さなサブセットに関する型システム | プログラミング入門2で扱った変数宣言について復習しておく。 |
10. | ラムダ計算 ・ラムダ式の構文定義 ・β変換 | 参考書第14章を予習。 |
11. | オブジェクト指向(1) ・クラス | 参考書第6章を予習。 |
12. | オブジェクト指向(2) ・継承 ・仮想関数 | 参考書第7章を予習。 |
13. | 論理型プログラミング | 参考書第11章を予習。 |
14. | 関数型プログラミング、小テスト | 参考書第8章、第9章を予習。 |
15. | 期末試験 ・第1回から第14回までの内容の理解を確認する筆記試験を実施し、終了後解説を行う。 | これまでの内容を復習しておく。 |
・ | 講義前後、あるいは電子メールで随時 |
・ | 対課題基礎力を育成する科目 |