Object REXX
出典: フリー百科事典『ウィキペディア(Wikipedia)』
| 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(32bit), AIX, Solaris,Linux, MacOS 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);
外部リンク [編集]
- 実装
- 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でのオブジェクト指向プログラミングを行う際のチュートリアル。