[GB20101] プログラム言語論
- 担当教員:
亀山幸義
(電子メイル: kam [at] cs.tsukuba.ac.jp)
-
担当Teaching Assistant: 須永
(電子メイル: plm [at] logic.cs.tsukuba.ac.jp)
- 曜日・時限: 春AB 木3-4,
講義は 3A203教室、
演習は情報科学類3C113計算機室.
このページには,2017年度の『プログラム言語論』の
情報を置きます.
2016年度の資料等は、
こちらのページを見てください。
目次
「新しいものが上」に来るようにしました。
- [2017/7/15]
期末試験の結果と成績についてというメモを書きました。
- [2017/7/13] 期末試験の解答例を修正しました。
- [2017/6/29] 昨日までの出席簿(レポート提出記録を含む)をmanabaペー
ジにはりつけました。この授業の受講者は、必ず、自分の欄を確認して、間
違いがあると思ったら、電子メール(plm [at] logic.cs.tsukuba.ac.jp)
で、自分の学籍番号、氏名、間違っている箇所を連絡してください。
2017/7/6 までに送るようにしてください。
(追加: このメールの発信メールアドレスは、
学内のアドレス user@xxx.yyy.tsukuba.ac.jp としてください。)
- [2017/6/17] 期末試験は来週の授業時間(6/29, 12:15〜)に行います。遅刻しないように来てください。期末試験より後に、救済試験や追試験等は行いません。
- [2017/6/17] No.10-2, No.11の講義スライドを更新しました。
- [2017/6/16] 12:00頃に No.10の講義スライドを更新しました。
- [2017/6/9] 昨日の演習用ファイル chap7.ml の 演習問題7-3 の最後
の方に誤記があったので修正しました。(「i=0,1,2について書きなさい」と
書いてありましたが、Whileの処理では i という変数は使っていませんでした。
この問題を解く人は、coinsマシンの ~kam/plm/chap7.mlファイルを再度コ
ピーしてください。
- [2017/6/1] 来週 6/8の授業は、3限が講義、4限が演習です。(6/8) No.9のスライドをアップロードしました。
- [2017/6/1] スライドNo.8 の 25ページ目に間違いがあったので(その
ほかの細かい点を含め)修正したものをアップロードしました。
- [2017/5/31] スライドNo.7の後半に「多相型の型システム」を追加しま
した。6/1 の授業の前半はこの話をします。スライドNo.8もアップロードしました。
- [2017/5/25] スライドNo.7を載せました。(ここ2週間、アップロードが
いつも授業後になってしまって
いるので、次回からはがんばって授業前にのせます。)
- [2017/5/18] スライドNo.5,No.6を載せました。
- [2017/5/12] レポート提出の締切りを過ぎてしまった場合の措置につい
て補足を書きました。
- これより古い連絡事項はこちらです。
授業の際にノートを取る、というのは非常に大事です。
ここに置いてあるスライドは授業の一部に過ぎません。
- [第1週]
高級言語と低級言語、インタープリタとコンパイラ、構文と意味:
スライドNo.1
- [第2週]
算術式の評価とOCamlを使った演習
- (参考資料: 2017年度は授業ではやりません)
スタック機械、コンパイル、 PostScript
(Sestoft教科書 2章後半に相当): スライド
- (以前の資料: 2017年度は授業ではやりません)
停止性について: スライド
- [第3週]
一階言語、抽象機械、環境と評価戦略、関数クロージャ
(Sestoft教科書 4章に相当): スライド No.3
- [第4週]
- 3限 講義:
高階関数、エフェクト、末尾再帰
(Sestoft教科書 5章を含む): スライド No.4
- 4限 演習: 今日の課題:
課題ファイル (5/11 の 18:10頃更新しまし
た。.../kam/plm/chap5.mlファイルも更新しました。)
- [第5週]
値呼び,名前呼び,必要呼び スライド No.5,
型システムの基本
(Sestoft教科書 6章)
スライド No.6
- [第6週]
型システム (静的型付け、動的型付け、型検査、型推論、多相型)
スライド No.7
- [第7週]
前半は多相型の型システム (前回のスライド No.7に追加して記述)。
後半は命令型言語 (Sestoft教科書 7章):
スライド No.8
- [第8週]
データ抽象とモジュール (Gabbrielli & Martiniの教科書 9章):
スライド No.9
後半は計算機室で演習 (使用ファイルは chap6-ex.ml と chap7.ml)
- [第9週]
オブジェクト指向 (Gabbrielli & Martiniの教科書 10章):
Javaコード(断片), 講義スライドNo.10
演習: Javaの動かし方
- [第10週] 授業のまとめ:
先週の積みのこし(サブタイピング)講義スライドNo.10-2,
まとめ 講義スライドNo.11
- 昨年の補足資料:
論理型プログラム言語、
関数型言語の補足(2015年度分)、
関数型言語の補足(2014年度分)
- (教科書)
Programming Language Concepts,
Peter Sestoft,
Springer, 2012.
(学部レベルの内容がコンパクトによくまとまっている。
2014年度以降はこの本に準拠して講義をおこなっている。)
電子ファイルは
こちらです。(学内ネットワークからは無料でアクセス可能。)
- 教科書掲載のコード(をOCamlで動くようにしたもの)は、coins計算機の
/home/prof/kam/plm/ の下に置いてある。
たとえば、第1章のソースコードを使うためには、
OCaml の対話的モードで #use "chap1.ml";; とすればよい。
- 著者のページは、
ここにあるので
参考にされたい。
- (参考)
Programming Languages: Principles and Paradigms,
Maurizio Gabbrielli, Simone Martini,
Springer, 2011.
(学部レベルの内容がコンパクトによくまとまっている。
2012-2014年度はこの本(の一部)に準拠して講義をおこなった。)
電子ファイルは
こちらです。(学内ネットワークからは無料でアクセス可能。)
- (参考)
Concepts in Programming Languages,
John C. Mitchell,
Cambridge University Press, 2003.
(広範囲のことがまとめられている分厚い教科書、
2011年度まではこの本に準拠して講義をおこなっていた。
なお、この本の誤殖リストが
著者のページ
にある。)
出席簿(レポート提出記録を含む)をmanabaページにはりつけました。
この授業の受講者は、必ず、自分の欄を確認して、間
違いがあると思ったら、電子メール(plm [at] logic.cs.tsukuba.ac.jp)
で、自分の学籍番号、氏名、間違っている箇所を連絡してください。
2017/7/6 までに送るようにしてください。
(追加: このメールの発信メールアドレスは、
学内のアドレス user@xxx.yyy.tsukuba.ac.jp としてください。)
亀山幸義