{% include head.html %}
- 7月24日: 講義スライドを一部公開しました.
- 6月13日: 4.7: 多相的
let
の型推論の説明が結構間違っていたのでこっそり修正しました. - 6月2日: 演習問題に問題番号をつけました.
- 5月18日: 今年は中間試験を行いません.成績評価については別途講義で説明した通りとなります.
- 4月5日: 講義について重要なお知らせがあります.KULASIS と PandA をチェックしてください.また,履修を検討している人は講義用 Slack ワークスペースに入ってください.
- 3月4日: 2020年の講義資料ページを作りました.
計算機科学コースの学生には講義中に別途やり方を指示します.(実験3SWもやるので.)
- この講義資料の GitHub のページからリポジトリを clone しましょう.
- OCaml が使えるように環境を設定しましょう.
- 落ちてきたソースコード中の
textbook/interpreter/
ディレクトリの中にインタプリタのソースコードが入っているので,dune
コマンドでビルドしましょう. - 教科書を読みながらもりもり演習問題を解きましょう.
- 教科書にバグを見つけたら issue で報告しましょう.
- 講義の履修者は講義用 Slack で質問してもよいですね.
- プログラミング言語強者になりましょう.そのためには...
- なにか自分で言語を作って処理系を作ってみましょう.作った処理系を自慢しましょう.世界中で自作の言語が使われるようになったらいいですね.
- もしくは,プログラミング言語理論やプログラム検証を勉強してみましょう. TODO: 参考文献
(鋭意 Markdown 化中.)
- OCaml あまり知らない人向け: 前提となる OCaml の知識を身に付ける.
- もう少しちゃんとした OCaml のテキスト: OCaml入門テキスト by 五十嵐淳
- 1章は古くなっているので,2章から読むこと
- プログラミング言語処理系テキスト by 五十嵐淳,馬谷誠二,末永幸平
- 1章: イントロダクション
- 2章: 概論的な話 (講義スライド)
- 3章: 型無し MiniML インタプリタの実装 (講義スライド)
- 4章: 型推論機能付き MiniML インタプリタの実装(あるいは,型システムを用いた形式検証の初歩)(講義スライド)
- 5章: MiniML コンパイラの実装
- 5.1: 能書き
- 5.2: ソース言語 MiniML4- と中間言語$\mathcal{C}$
- 5.3: MiniML4- から$\mathcal{C}$への変換$\mathcal{I}$
- 5.4: MIPS アセンブリ言語入門
- 5.5: 仮想マシンコードとその生成
- 5.6: アセンブリ生成
- 5.7:
$\mathcal{C}$ の最適化(まだ) - 5.8:
$\mathcal{V}$ におけるデータフロー解析(まだ) - 5.9: レジスタ割り付け(まだ)
- 5.10: 高階関数(まだ)
- 5.11: 動的メモリ管理(やるの?)
- 5.12: オブジェクト指向(やるの?)
- 5.13: 分割コンパイルとリンカ(やるの?)
- 6章: 字句解析と構文解析のためのアルゴリズム(まだ.今学期はスライドで講義済み.)
- 7.1: 字句解析
- 7.2: LL(1)アルゴリズム
- 7.3: LR(0)アルゴリズム
- 7.4: SLR(1), LR(1)アルゴリズム
- 7章: さらに学びたい人のための参考文献
- 実験3ホームページ
- 専門科目「プログラミング言語」ホームページ
- OCaml の標準ライブラリの話を教科書に書いてあるので読んでおくととても良い違いない.
- 講義をする人: 末永幸平(@ksuenaga, Researchmap)
- 講義が行われる時間: 月曜2限
- 講義が行われる場所: 総合研究7号館講義室1
- Language used in the class: Japanese