ozzzzzzzzzzzzzzzzzzzzzzzzzzzz

非常に良い出発点は、何故Oz?と尋ねることです。 まあ、1つのそっけない返事は、他の既存の言語と比べると、Ozは魔法であるということです! Ozは、複雑なアプリケーションをすぐに、そして堅牢に開発するためのさまざまなプログラミング抽象をプログラマとシステム開発者に提供します。 Ozはプログラミング言語設計のいくつかの方向性を一つの論理的なデザインに統合しています。 私たちの大部分は様々なプログラミングパラダイム、例えば関数的、規制論理的、あるいはオブジェクト指向、等の利点を知っています。 しかし、既存の言語でプログラムを書き始めると、私たちはその基本的なパラダイムの概念によってすぐに閉じ込められている事に気づきます。 一方、Ozは簡潔で簡素な方法で、様々なパラダイムのプログラミング抽象化を統合する論理的なデザインでこの問題を解決しているのです。

それで、上の質問に答える前に、Ozとは何であるか考えましょう。 しかしながら、これは数行では答えにくい質問です。 一発目の回答はこれです。 Ozは、現代的で先進的で、コンカレントで、知的で、ネットワーク化されて、ソフトリアルタイムで、平列で、対話的でプロアクティヴなアプリケーションのために設計されている高水準プログラミング言語です。 お分かりのように、まだこれらの専門用語はわかりにくいです。 詳細は:

Ozは、状態、抽象データ型、クラス、オブジェクト、および継承を提供する事で、オブジェクト指向プログラミングに関する特徴を統合します。
Ozは、コンポジショナル構文、ファーストクラスの手続き、レキシカル・スコープを提供することによって、関数プログラミングに関する特徴を提供します。 事実上、あらゆるOzの実体、例えば、手続き、スレッド、クラス、メソッド、およびオブジェクトはファーストクラスです。
Ozは、論理変数、ディスジャンクティヴ構造体、およびプログラマブルな検索方法を提供することによって、論理プログラムと規制プログラミングに関する特徴を提供します。
Ozは、ユーザがダイナミックにお互いにインタラクティヴな連結スレッドを作成できるコンカレント言語です。 しかしながら、従来のコンカレント言語と違い、それぞれのOzスレッドはデータフロースレッドです。 Ozでのステートメント実行は変数に関するリアルなデータフローの依存がかかわったすべてが解決された時だけ進みます。
モーツアルトシステムはOzによる計算のネットワーク互換分配をサポートします。 変数、オブジェクト、クラス、および手続きを共有して、複数のOzサイトが互いに接続しあって、一つのOzによる計算のように自動的に振る舞うことができます。 異なったサイトの実体の間の参照が消滅すると、サイトは自動的に切断します。
分散環境として、Ozは言語セキュリティを提供します。 すなわちすべての言語実体は、明示的に作成されて、通過します。 アプリケーションは、参照を作り出しますが、明示的に与えられていない参照にはアクセスできません。 プログラマにとって、言語実体の基底表示は近づきがたいです。 これは抽象的なストアとレキシカルスコープを持つ結果です。 ファーストクラスの手続きと共に、これらの概念は、キャパビリティベースの安全保障ポリシーを実装するのに不可欠です。(安全保障ポリシーはオープンな分散コンピューティングで重要です)。