Oz (プログラミング言語)

Oz は、ザールラント大学 Programming Systems Labで開発されたマルチパラダイム型プログラミング言語である。

 歴史 
1991年、Gert Smolkaが学生らと共に設計したのが最初である。1996年、Ozの開発はスウェーデン計算機科学研究所のSeif Haridiの研究グループの協力で続けられた。1999年以降、Ozの開発はMozart Consortiumという国際的グループによって続けられている。Mozart Consotiumには、ザールラント大学とスウェーデン計算機科学研究所のほかに、ルーヴァン・カトリック大学も当初から参加している。2005年、Oz処理系であるMozartプログラミングシステムの開発を管理するMozart Boardが設けられ、Mozartの開発をより大きなコミュニティで行う用意が整った。

 処理系 
Ozの高品質な実装としてMozartプログラミングシステムがある。これはオープンソースで Mozart Consortium からリリースされている。Mozartは、Unix系オペレーティングシステム、FreeBSD、Linux、Windows、macOS などに移植されている。

 言語の特徴 
Ozは主要なプログラミングパラダイムの概念を単純かつ巧妙に取り入れており、論理型の拡張である並行制約プログラミングをベースに、関数型（遅延評価も、先行評価も）、命令型、オブジェクト指向、分散といった要素が含まれている。Ozの形式意味論は単純で、実装（Mozartプログラミングシステム）は効率が良い。Ozは並行性指向言語とも呼ばれる（この名付け親はErlangの主要設計者Joe Armstrong）。並行性指向言語は並行性を容易かつ効率的に実現できる。

単なるマルチパラダイム言語というだけでなく、Ozの利点は制約プログラミングと分散プログラミングにある。Oz はネットワーク透過な分散プログラミングモデルを実装できる。このモデルにより、フォールトトレラントアプリケーションを容易に書ける。制約プログラミングのために Oz は 「計算空間; computation space」という考え方を導入している。これにより、制約領域に対して直交するユーザー定義の検索・分散戦略を実施できる。

 参考文献 

 Peter Van Roy and Seif Haridi (2004). Concepts, Techniques, and Models of Computer Programming. MIT Press. 同書の オンライン関連資料。Oz を例として、プログラミング言語の基本原則を解説した教科書的書籍
 ピーター・ヴァン・ロイ、セイフ・ハリディ、羽永洋(訳) 、『コンピュータプログラミングの概念・技法・モデル』、翔泳社、2007年、ISBN 978-4-7981-1346-3 上記書の日本語訳

 関連項目 
 Mozartプログラミングシステム
 コンピュータプログラミングの概念・技法・モデル
 Alice - 並行/関数/制約プログラミング言語（ザールラント大学）。当初 Mozart/OzのVM上で動作した。

 外部リンク 
 The Mozart Programming System
 Tutorial of Oz 和訳
 Open Directory: Oz
 Programming Language Research at UCL Mozart/Ozの主要な開発元の1つ
 Multiparadigm Programming in Mozart/Oz: Proceedings of MOZ 2004 Mozart/OZに関する国際会議

Category:論理プログラミング言語
Category:関数型プログラミング言語
Category:オブジェクト指向言語
Category:並行計算
Category:オープンソースソフトウェア