Oz(プログラミング言語):マルチパラダイム言語とMozartシステム
Ozは、関数型・論理型・オブジェクト指向・並行/制約プログラミングを統合するマルチパラダイム言語および研究プラットフォームである。教育と研究で用いられ、Mozartシステムにより実装されている。
概要
Ozは、単一の首尾一貫した枠組みの中で多様なプログラミング様式を支援するよう設計された、汎用マルチパラダイム・プログラミング言語である。Université catholique de Louvainのプログラミングシステム研究所におけるプログラミング言語研究の一環として開発され、1990年代初頭に初めて登場した。Ozは、実験、教育、プロトタイピングに広く用いられる実装およびランタイムであるMozartプログラミングシステムと密接に結び付いている。
主な特徴
この言語は複数のプログラミングモデルを組み合わせ、プログラマーが各課題に最も適した抽象化を選べるようにしている。主な機能は次のとおりである。
- 関数型・高階プログラミング:第一級関数、レキシカルスコープ、および適切な場面での不変データを備える。
- オブジェクト指向プログラミング:オブジェクトとクラスをサポートし、モジュール設計とカプセル化を可能にする。
- 論理・制約プログラミング:論理変数、単一化、制約充足を統合し、宣言的な問題解決を支援する。
- 並行性とデータフロー:データフロー変数とポートを介して通信する軽量スレッドにより、宣言的並行性を支える。
- 探索と計算空間:制御された非決定的探索、バックトラッキング、代替案の並列的な探索のための抽象化を提供する。
歴史と開発
Ozの設計は、異なるプログラミングパラダイムをどのように明確に組み合わせるか、またそれらの概念を統一的に教えるにはどうするかという研究から生まれた。1990年代には、複数の研究者と学生がその開発に貢献した。この言語とその考え方は、Peter Van RoyとSeif Haridiによる教科書『Concepts, Techniques, and Models of Computer Programming』にまとめられ、同書ではOzが教育と研究の双方の手段として提示されている。
用途と例
Ozは主として学術的な場で利用されてきた。具体的には、プログラミングパラダイムに関する講義の教育言語、並行性および制約充足の研究プラットフォーム、言語機能の迅速なプロトタイピングのために用いられる。Mozartシステムは制約プログラミング、分散計算、グラフィカルツールのライブラリを提供しており、Ozは実験的なソルバーやデモンストレーターの構築に適している。
特筆すべき相違点
単一パラダイムの言語とは異なり、Ozは補完的な抽象化を意図的に統合している。そのため、たとえば宣言的論理プログラミングは、状態を持つオブジェクトや並行スレッドと共存できる。データフロー変数と計算空間は、他の一部のシステムと比べて、協調とカプセル化された探索を簡素化する特徴的な機構である。技術的な詳細および実装リソースについては、プロジェクトとドキュメントのページを参照。
関連項目
著者
AlegsaOnline.com Oz(プログラミング言語):マルチパラダイム言語とMozartシステム Leandro Alegsa
URL: https://ja.alegsaonline.com/art/73844