[S-8] 関数プログラミング
  - 筑波大学 情報科学類 3年次実験(ソフトウェアサイエンス実験) 
  
- 担当教員: 
亀山幸義(kam[at]cs.tsukuba.ac.jp), 
  
- 担当TA: 夏井,李 (jikken.fp[at]gmail.com)
- 時期と場所: 秋ABC, 座学・質問対応はMS Teamsのオンライン会議, 実作業を行う場所は自由
- 科目情報: 
実験ホームページ
 関数プログラミングの世界へようこそ! 
「関数型プログラム言語」という言葉を聞いたことがありますか?
「聞いたことがあるけど何だかわからない」、
「興味はあるけど難しそう」という印象の人はいませんか?
関数型プログラム言語を使えば、
C言語を使うよりもずっと、
美しく、
簡潔で、
わかりやすい
プログラムを書くことができます。
実験S-8 は、一番広く使われている関数型言語である
OCaml (オーキャムル, もともとは Objective Caml の省略だった)の入門講座です。
予備知識ゼロの状態から始めて、
プログラムを処理するプログラムである「インタープリタ」を、いとも簡単に書けるようになります。
実験後半では,「型検査器・型推論器」や「コンパイラ」などの
簡単なものも作成し,「プログラム言語の処理系」の作り方を修得します.
これにより,将来,「自分の言語」を設計したときに,
その処理系を比較的容易に作ることができるようになります.
C や Java 以外のプログラム言語,また,言語処理系に興味がある人は、
是非この実験にチャレンジしてください。
 連絡事項 
  -  テキストを更新して 2024年度版にしました。(2024/10/01)
-  このページを設定しました。(2013/03/15) 
 実験の資料
-  実験概要
-  今年のスケジュールなどの情報
-  
実験TA のページは、MS Teams内のExcelファイルに
引越しました。
-  テキスト
以下に実験のテキストを示します。
間違いやわかりにくい点があれば、遠慮なく質問・指摘してください。
 (Credit)
この実験のテキスト(以下のリンク先)は最初は亀山が作成したのですが、
その後、
海野広志先生
(2023年度まで筑波大学在籍)がコンパイラの部分などを大幅に改訂して
くださったものです。また、
歴代のTeaching Assistantの人たちがテキスト改善に貢献してくれています。
-  1. 準備
  
-  2. インタープリタの基礎
  
-  3. 環境と束縛の処理
  
-  4. 構文解析器の利用
  
-  5. 関数の処理
  
-  6. インタープリタの拡張 (必須ではありません。)
  
-  7. 型検査と型推論 
  
-  8. 簡単なコンパイラの作成 
  
-  まとめ; 
  
 
 関連する授業
-  「プログラム言語論」 (3-4年次, 春AB,亀山): 
プログラム言語の基本となる概念を解説する授業,関数型プログラム言語にも言及する.
亀山幸義