[S-8] 関数プログラミング
- 筑波大学 情報科学類 3年次実験(ソフトウェアサイエンス実験)
- 担当教員:
亀山幸義(kam[at]cs.tsukuba.ac.jp),
海野広志(uhiro[at]cs.tsukuba.ac.jp)
- 担当TA: 徳田 (jikken[at]logic.cs.tsukuba.ac.jp)
- 時期と場所: 秋ABC, 座学・質問対応はMS Teamsのオンライン会議, 実作業を行う場所は自由
- 科目情報:
実験ホームページ
関数プログラミングの世界へようこそ!
「関数型プログラム言語」という言葉を聞いたことがありますか?
「聞いたことがあるけど何だかわからない」、
「興味はあるけど難しそう」という印象の人はいませんか?
関数型プログラム言語を使えば、
C言語を使うよりもずっと、
美しく、
簡潔で、
わかりやすい
プログラムを書くことができます。
実験S-8 は、一番広く使われている関数型言語である
OCaml (オーキャムル, Objective Caml の略)の入門講座です。
予備知識ゼロの状態から始めて、実験の終わる頃には、
プログラムを処理するプログラムである「インタープリタ」を、いとも簡単に書けるようになります。
C や Java 以外のプログラム言語に興味がある人は、是非この実験にチャレンジしてください。
連絡事項
- 2022年度向けに修正しました。(2022/10/05)
- 2021年度向けに修正しました。(2021/9/25)
- 2020年度向けに修正しました。(2020/10/6)
- 2019年度向けに修正しました。(2019/10/3)
- 発展課題 8-3.中の誤植を修正しました。(2019/1/25)
- 課題 7-4.中の誤植を修正しました。(2018/12/7)
- 節 6-3.のコード中の誤植を修正しました。(2018/11/21)
- 4章のparser.mlyとlexer.mllを[1; 2; 3]といった表記をサポートするよう修正。(2018/11/14)
- 2018年度向けに修正しました。(2018/10/4)
- ZAMの状態遷移表のAdd,Eq命令の引数スタックにおけるn1とn2を入れ替え。(2018/2/9)
- CAMの状態遷移表の(;)の意味を補足。(2018/1/17)
- 課題 7-4.の型環境の間違いを修正。(2018/1/17)
- 課題 7-5.のコードを修正。(2017/12/15)
- 課題 7-3.の文言を修正。(2017/11/21)
- 2017年度向けに修正しました。(2017/10/11)
- 2016年度向けに修正しました。(2016/10/12)
- 発展課題 7-7.の問題文の間違いを修正しました。(2015/12/14)
- 課題 8-2.にCAMインタープリタのテストのためコード例を追加しました。(2015/11/25)
- 2015年度向けに修正しました。(2015/10/09)
- 節 8-2.のCAMの遷移表の不具合を指摘してもらい、修正しました。(2014/12/24)
- 節 4-1.のparser.mlyのバグを指摘してもらい、修正しました。(2014/10/29)
- 節 4-1.のコンパイルのやり方についての説明の誤植を修正しました。(2014/10/29)
- 2014年度向けに修正しました。(2014/10/07)
- 節 6-3.の誤植を修正しました。(2013/11/13)
- 課題 4-1.の問題文の間違いを修正しました。(2013/11/08)
- 2013年度向けに実験資料を追加しました。(2013/10/09)
- 2013年度向けに修正しました。(2013/04/10)
- このページを設定しました。(2013/03/15)
実験の資料
- 実験概要
- 今年のスケジュールなどの情報
-
TA のページ (出席簿・課題に対するヒントなど)
- テキスト
以下のテキストは、今後、もっと充実させる予定です。
間違い、わかりにくいところがあれば、遠慮なく指摘ください。
- 1. 準備
- 2. インタープリタの基礎
- 3. 環境と束縛の処理
- 4. 構文解析器の利用
- 5. 関数の処理
- 6. インタープリタの拡張 (必須ではありません。)
- 7. 型検査と型推論
- 8. 簡単なコンパイラの作成
- まとめ;
関連する授業
-
「プログラム言語論I」 (3-4年次, 春AB,亀山):
プログラム言語の基本となる概念を解説する授業,関数型プログラム言語にも言及する.
亀山幸義(kam[at]cs.tsukuba.ac.jp),
海野広志(uhiro[at]cs.tsukuba.ac.jp)
今年の情報
TA のページ