関数型言語Part IV
■ このスレッドは過去ログ倉庫に格納されています
0802デフォルトの名無しさん
2009/08/30(日) 02:37:21並行/並列/分散プログラミングに興味があり、以前からConcurrent Pascal/
Ada/KL1(GHC)などを勉強していました。
最近になって関数型言語にも手を出して触ってみたのですが(実は再挑戦...)、
並行/並列/分散処理記述には、いくつか問題があると感じました。
まずHaskellについて、柔軟な代数的データ型、厳密な型付け、偉大な型推論、
そして遅延評価による柔軟性は素晴らしく、興奮状態です。
ただし、分散処理に関する支援がありません。
並列Haskellはあるようですが、マルチコアやマルチプロセッサ構成には
対応できても、分散環境でいかに実装するのか自分には想像がつきません。
次にErlangですが、並列論理型言語であるKL1(GHC)と、ほとんど同じ
プログラミングモデルで設計されていることに驚きました。型付けの
無い点も(Prologを含めた)論理型言語と同じ性質を備えていると言えます。
Lisp系言語に分散支援を追加して構文糖をかぶせたという印象を持ちました。
そこで冒頭の質問に戻るのですが、システム全体の分散処理は「柔軟」な
Erlangモデルで記述し、各プロセスの受信イベントに対するアトミックな
アクションは「厳密」なHaskellモデルで記述するハイブリッド・プログラミング
モデルが良いのではないかと考えました。
素人考えですから、同様な事は他の人も考えていると思います。
参考になる文献やWeb情報など知っている方がおられたら教えてくださいませ。
■ このスレッドは過去ログ倉庫に格納されています