Object REXX

出典: フリー百科事典『ウィキペディア(Wikipedia)』
移動: 案内検索
Object REXX
パラダイム オブジェクト指向プログラミング
設計者 IBM
型付け 弱い動的型付け (ただし、型チェックを行う関数は用意されている)
影響を受けた言語 REXXC言語PascalC++JavaBASICPL/ISmalltalk
影響を与えた言語 IBM NetRexxKilowatt Software Roo!

Object REXXIBMが開発した REXXオブジェクト指向を取り入れたプログラミング言語である。ここでは IBM Object REXX およびそのオープンソース版である Open Object REXX について述べる。その他の Object REXX 系統の処理系である IBM NetREXX および Kilowatt Software Roo! に関しては別途参照。

概要[編集]

1988年にIBMのエンジニアグループにより開発が開始された。その後 OS/2 Warp にバンドルされた。

なお、IBM による Object REXX営業活動は2005年1月12月に終了している。現在は Open Object REXX としてオープンソースとなっている。

特徴[編集]

  • マルチプラットホーム
    • Windows(32ビット)、AIX、SolarisLinuxMac OS X 上で動作する。
  • ooDIalogWindows のみ)や gtk(4.0.0以降)といった GUI クラスライブラリのサポート
  • クリップボードアクセス・レジストリ操作ライブラリのサポート(Windows のみ)
  • クラスベースのオブジェクト指向言語である。
    • C++Java と比較してオブジェクト指向プログラミング関連の文法(ディレクティブ)は整理されており、初心者が学ぶにしても混乱が少ない。
    • Classic REXX からの移行についても、わずか6個のディレクティブを学ぶだけで済む。
    • 通常のサブクラス継承のほかに、メタクラス、ミックスインクラスをサポートしている。
  • Classic REXX との高い互換性がある。
    • 機種依存性の Classic REXX のプログラムは修正なし、またはわずかな修正だけで移植が行える。
    • Object REXX を使用すれば段階的にオブジェクト指向プログラミングへ移行できる。
  • バッグ、ステム、ディレクトリ、マップ、ハッシュ、ポインタ、OracleDB、リストなどの強力なコレクションクラス
    • Classic REXX では難しかったデータ構造が容易に扱える。

IBM Object REXXOpen Object REXX の差異について[編集]

ここでは IBM Object REXXOpen Object REXX の差異について述べる。

  • IBM Resource Workshop および Object REXX Workbench が付属していない。
  • Version 4.00 以降は Windows 95/98/Me は動作しない(非公式ながら Version 3.2.0.1 以下はインストール時にサービスを導入しないことで動作可能)
  • Open Object REXX では大幅なコレクションクラスの大幅な見直しにより機能追加がなされている。
  • OS/2 版は存在しない。

サンプルソース[編集]

  • Hello World(インスタンスを生成する方法)
console = .stream~new(stdout);
console~lineout("Hello, World!");
  • Hello World(スタティックメソッドを使用する方法)
.stdout~lineout("Hello, World!"); 
.stdout~charout("Hello, World!" || "0d0a"x);

外部リンク[編集]