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」という考え方を導入している。これにより、制約領域に対して直交するユーザー定義の検索・分散戦略を実施できる。