Object REXX
提供: miniwiki
Object REXX | |
---|---|
パラダイム | オブジェクト指向プログラミング |
設計者 | IBM |
型付け | 弱い動的型付け (ただし、型チェックを行う関数は用意されている) |
影響を受けた言語 | REXX、C言語、Pascal、C++、Java、BASIC、PL/I、Smalltalk |
影響を与えた言語 | IBM NetRexx、Kilowatt Software Roo! |
Object REXX はIBMが開発した 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、Solaris、Linux、Mac OS X 上で動作する。
- ooDIalog(Windows のみ)や gtk(4.0.0以降)といった GUI クラスライブラリのサポート
- クリップボードアクセス・レジストリ操作ライブラリのサポート(Windows のみ)
- クラスベースのオブジェクト指向言語である。
- C++、Java と比較してオブジェクト指向プログラミング関連の文法(ディレクティブ)は整理されており、初心者が学ぶにしても混乱が少ない。
- Classic REXX からの移行についても、わずか6個のディレクティブを学ぶだけで済む。
- 通常のサブクラス継承のほかに、メタクラス、ミックスインクラスをサポートしている。
- Classic REXX との高い互換性がある。
- 機種依存性の Classic REXX のプログラムは修正なし、またはわずかな修正だけで移植が行える。
- Object REXX を使用すれば段階的にオブジェクト指向プログラミングへ移行できる。
- バッグ、ステム、ディレクトリ、マップ、ハッシュ、ポインタ、OracleDB、リストなどの強力なコレクションクラス
- Classic REXX では難しかったデータ構造が容易に扱える。
IBM Object REXX と Open Object REXX の差異について
ここでは IBM Object REXX と Open 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);
外部リンク
- 実装
- Open Object Rexx 開発元
- Open Object Rexx 公式ウィキ
- IBM Object REXX 2.x のころの日本語訳マニュアル
- Japanese:Object REXX(Win) リファレンス V.2.1(SH88-5503-00)
- Japanese:Object REXX(Win) プログラミング・ガイド バージョン2.1(SH88-5504-00)
- 全体的に古いため、記載されていない機能に関しては使用の際は Open Object REXX の公式英文マニュアルを確認する必要がある。
- サンプルソース・チュートリアル
- Object REXX by Example(C) コレクションクラスに関連するサンプルソースが入手できる。検証する場合は拡張子を.cmdから.rexへリネームする必要がある。
- Starting OO Design Open Object REXX でのオブジェクト指向プログラミングを行う際のチュートリアル。