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、Microsoft 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 に関する国際会議

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