| パラダイム | マルチパラダイム:命令型、構造化、モジュール型、オブジェクト指向、プロトタイプベース、並列 |
|---|---|
| 家族 | ヴィルト・ オベロン |
| デザイン: | クリシュナ・バーラット マーク・H・ブラウン ルカ・カーデリ |
| 初登場 | 1993年 |
| タイピングの規律 | 力強く、ダイナミック |
| 範囲 | 語彙純粋 |
| 実装言語 | モジュラ3 |
| プラットフォーム | IA-32 |
| Webサイト | www.cc.gatech.edu/gvu/people/Phd/Krishna/VO/VOHome.html |
| 主な実装 | |
| オブリク、視覚オブリク | |
| 影響を受けた | |
| Modula-3、Self、Oberon | |
Obliq は、分散型およびローカルマルチスレッドコンピューティングをよりシンプルで簡単にプログラムできるように設計された、インタープリタ型のオブジェクト指向 プログラミング言語であり、プログラムの安全性と暗黙的な型システムを提供します。インタープリタはModula-3で記述されており、Obliq は Modula-3 のネットワークオブジェクト機能に完全にアクセスできます。レコードの連結、サブタイプ、再帰型の型推論アルゴリズムが Obliq 用に開発されました。さらに、これはNP 完全[1]であることが証明されており、その最低複雑度はΟ ( n 3 ) であり、他のモデリングでは特定の条件までΟ ( n 2 ) [2]まで下がります。 最もよく知られている実装はΟ ( n 5 )で実行されます。[3] [矛盾] Obliqの構文はModula-3と非常によく似ていますが、最大の違いは、Obliqでは明示的に型指定された変数 が必要ないことです(つまり、変数は型チェッカーで許可されている任意のデータ型を保持でき、受け入れない場合は、指定された式の実行エラーが表示されます)。ただし、明示的な型宣言は許可され、インタープリターによって無視されます。言語の基本的なデータ型には、ブール値、整数、実数、文字、文字列、配列があります。Obliqは、通常の一連の順次制御構造(条件、反復、例外処理形式)と、並行性のための特別な制御形式(ミューテックスとガードされたステートメント)をサポートしています。さらに、Obliqのオブジェクトは、分散ネットワークオブジェクト内の任意のマシンによってリモートで複製および安全にコピーでき、安全かつ透過的に実行できます。[4]
Obliq の大規模な標準ライブラリは、数学的演算、入出力(I/O)、永続性、スレッド制御、グラフィックス、アニメーションを強力にサポートします。分散コンピューティングはオブジェクト ベースです。オブジェクトは、1 つのプロセスに対してローカルな状態を保持します。オブジェクトおよびその他の変数のスコープは、完全に語彙的です。オブジェクトは、ネットワーク上の別のマシン上にある場合でも、他のオブジェクトのメソッドを呼び出すことができます。Obliq オブジェクトは、単に名前付きフィールドのコレクション ( SelfおよびSmalltalkのスロットに類似) であり、委任による継承(Self など) をサポートします。
Obliq の一般的な用途には、ネットワーク経由のプログラミング、3D アニメーション、およびEthernetなどのローカル エリア ネットワーク(LAN)上で行われる分散コンピューティングが含まれます。Obliq はDigital Equipment Corporation (DEC) Modula-3 ディストリビューションに無料で含まれていますが、他の無料バージョンも存在し、複数のオペレーティング システム用のコンパイル済みバイナリも含まれています。
Obliq を使用したプロジェクト
- Collaborative Active Textbooks(CAT)[5]は、Obliqアプレット[6]とZeus [7]アルゴリズムアニメーションシステム( Modula-3で記述)を使用して開発されました。
- Obliqアプレット(Oblets)[6]特殊なウェブブラウザ(Modula-3で記述)Obliqウェブページ組み込みアプリケーション。[8]
参考文献
- ^ Palsberg, Jens; Zhao, Tian (2003-09-22). 「レコードの連結とサブタイピングの型推論」(PDF) 。2024-05-19に閲覧。
- ^ Henglein, Fritz (1999). 「n 3障壁の突破: より高速なオブジェクト型推論」.オブジェクトシステムの理論と実践. 5 (1): 57–72. doi :10.1002/(SICI)1096-9942(199901/03)5:1<57::AID-TAPO5>3.0.CO;2-U.
- ^ Palsberg, Jens; Zhao, Tian (2002). 「レコードの連結とサブタイピングのための効率的な型推論」。Logic in Computer Science、シンポジウム。米国カリフォルニア州ロサンゼルスアラミトス: IEEE Computer Society。p. 125。doi :10.1109/LICS.2002.1029822。ISBN 0-7695-1483-9。
- ^ Briais, Sebastien; Nestmann, Uwe (2002). 「移動物体は安全に動かなければならない」. FMOODS '02 . pp. 129–146. CiteSeerX 10.1.1.23.4787 .
- ^ Brown, Marc H.; Najork, Marc A. (1996 年 5 月)。「Collaborative Active Textbooks: A Web-Based Algorithm Animation System for an Electronic Classroom; Research Report 142」。DEC Systems Research Center (SRC)。Digital Equipment Corporation (DEC)。2006 年 4 月 11 日時点のオリジナルよりアーカイブ。
- ^ ab Brown, Marc H.; Najork, Marc A. (1997). 「分散アプレット」。CHI '97 拡張アブストラクト「コンピューティング システムにおけるヒューマン ファクター: 将来への展望」。ジョージア州アトランタ: ACM。pp. 204–205。doi :10.1145/1120212.1120344。ISBN 0-89791-926-2. 2010年5月15日閲覧。
- ^ Zeus: アルゴリズムアニメーションとマルチビュー編集のためのシステム Marc H. Brown。Digital Equipment Corporation (DEC) Systems Research Center (SRC) Research Report 075 (1992 年 2 月)
- ^ 分散アプレット(MPG) . www.ibiblio.org . 2024年5月19日閲覧。
外部リンク
- 公式サイト
- Luca Cardelliの Obliq クイック スタート ページ (2008-10-17 にアーカイブ)
