2014年7月からミクシィのエンジニアの方主催の コンピュータプログラミングの概念・技法・モデル(Concepts, Techniques, and Models of Computer Programming CTMCP, ガウディ本)読書会が2015年12月の終わりました.

10章のGUIの部分と13章については読書会では扱いませんでした.

実行環境

コンピュータプログラミングの概念・技法・モデルでは Oz 言語の Mozart Programming System という実装を用います. Mozart には 1系と2系があり, 1系は(すくなくとも GNU/Linux版は)64bit環境では動きません. Windows の場合は 64bit環境にインストール可能なようです.

8章までは 2系でもだいたい大丈夫です. 手続の引数の評価が並列に行なわれない問題があったのは記憶しています. 9, 12 章は 2015年現在の2系では動きません.

幸い今日では 32bitな仮想マシンを構築するのは容易なので, 途中からは仮想マシンを用いました. Debian系の multiarch のような仕組みでもうまくいくかもしれません.

内容

並列性, 状態, 遅延性のすべてを持つ Oz を舞台に, それらをon/offした様々な計算モデルについて学ぶことができます.

Java, Haskell, Erlang, Prolog などの言語との比較も述べられています.

それなりにかけあしなので SICP を先にやっておいたほうがよいでしょう.

演習問題が巻末にまとまっているので, SICPよりも輪講形式で進めていくのが難しかったです. ただし, 1度やったことがある人が適切な助言をしてくれればこの点は解決するでしょう. 我々は全員精読するのは初めてでした.

コード

私のコードは https://github.com/haruyama/CTMCP にあります. 自分用で他の方の参考にならないかもしれませんが.

参考になるものを上げておきます.

今後

今後もミクシィでやれるか, それとも別の場所にするか, リモートでやるかなどまったく未定です. 本も別のものにするかもしれません.