LINEスタンプ制作代行サービス・LINEスタンプの作り方!

お電話でのお問い合わせ:03-6869-8600

stampfactory大百科事典

Oberon-2

Oberon-2 とは、プログラミング言語 Oberon を拡張し、オブジェクト指向的なコンセプトを取り入れた言語である。1991年、チューリッヒ工科大学のニクラウス・ヴィルトと Hanspeter Mössenböck(現リンツ大学システムソフトウェア研究所)が開発した。Oberon-2 は Oberon の上位互換である。Oberon-2 は Object Oberon(Oberon にオブジェクト指向のコンセプトを導入した最初の試み)の再設計でもあった。Oberon-2 は Oberon から限定されたリフレクションとインタフェースなどを持たない単一継承(型拡張)を受け継いでいるが、効果的な仮想メソッド(型束縛プロシージャ)を追加している。メソッド呼び出しは、C++のような仮想メソッドテーブルを使って実行時に確定する。Smalltalk などの完全なオブジェクト指向言語に比べると、Oberon-2 の基本データ型はオブジェクトになっておらず、クラスもオブジェクトではなく、多くの操作がメソッドではないし、メッセージパッシングの概念もなく、ポリモーフィズムも限定的である(SmalltalkやRubyのようなダックタイピングがなく、Javaのようなインタフェースも定義できない)。オブジェクト/クラスレベルでのカプセル化もサポートしていないが、モジュールをその目的で使用することができる。Oberon-2 のリフレクションはメタオブジェクトを使わず、実行ファイル内に含まれる型記述子を単に読み、それが型やプロシージャを定義しているモジュールに渡される。その構造体の形式が言語レベルで渡されるなら(例えば Oberon System 3 がそうである)、ライブラリレベルでのリフレクションの実装が可能である。従って、言語コードを全く変えずにライブラリレベルでほとんど全てを実行することも可能である。実際、Oberon System 3 は言語レベルとライブラリレベルのリフレクションを多用している。以下の Oberon-2 のコードは、単純なリストクラスを実装したものである。Oberon-2 はオブジェクトの型について、動的なチェックを行う機構がいくつか用意されている。例えば、Bird オブジェクトのインスタンスとして Duck や Cuckoo があったとき、Oberon-2 では実行時にオブジェクトの実際の型に応じた処理が可能である。従来的な方法としては、「型束縛システム」を使った方法がある。第二の方法として、codice_1 文を使った方法がある。これは、変数の動的な派生型を直接チェックするものである。どちらの場合も、派生型を特定したら、プログラマはその派生型に適切な型束縛プロシージャや型束縛変数を使うことができる。以下に具体例を示す。なお、Oberon-2 の codice_1 文と Pascal や Modula-2 の WITH 文は無関係である。以下のメソッドではレコードのフィールドへのアクセスを略記しているが、Oberon や Oberon-2 では実際にはこのような記法は使わない。型束縛codice_1 文codice_4第三の方法として、codice_5 演算子を使った方法もある。これは、等号(codice_6)や不等号(codice_7)などと同じ優先順位の関係演算子であるが、動的な型の検査を行う。しかし、上述の2つの方法とは異なり、検出した派生型によって処理を振り分けることはできない。ALGOL - Pascal - Modula-2 - Oberon - Component Pascal の系列の言語は文法を単純化させてきたと言える。Oberon-2 はEBNFを使って下記のように33の構文生成規則で表せる("Mössenböck & Wirth, 1993")。

出典:wikipedia

LINEスタンプ制作に興味がある場合は、
下記よりスタンプファクトリーのホームページをご覧ください。