Oz (プログラミング言語)
From Wikipedia, the free encyclopedia
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」という考え方を導入している。これにより、制約領域に対して直交するユーザー定義の検索・分散戦略を実施できる。