RexxとはIBMによる構造化スクリプト言語です。メインフレーム全盛の時代に考案され、IBM 社内で利用されていました。C 言語等に比べて簡易的・寛容的であり、例えば関数に渡した整数が数字として扱われるか文字列として扱われるかは時の場合によって柔軟に運用されます。近年、特に型を厳密にチェックすることで曖昧さから生じるバグを発見しやすく、潰しやすくするスタイルが好まれる傾向が強まっているのではないかという気もしますが、それとは逆に Rexx では「とにかく楽にプログラミングする」というポリシーが保たれています。
Rexx は IBM の OS/2 に標準でインタプリタが搭載されていました。Windows そのほかの環境であっても、純正あるいは互換性のインタプリタをインストールすることで Rexx スクリプトを実行することができます。現在ではオブジェクト指向を取り入れた OpenObjectRexx も存在します。
私は WindowsNT5.x に ooRexx をインストールしました。といっても配布サイトより ooRexx インストーラをダウンロードし、インストーラを実行し、Windows を再起動するだけです(→ 現在 sourceforge か、あるいはOpen Object Rexx サイトからダウンロードできるようです)。これだけでインストールは完了です。普通にインストールしたら C:\Program Files\ooRexx というディレクトリが出来ていると思います。この中にある rexxtry.rex へのショートカットを、デスクトップ(あるいはスタートメニューやアプリケーションランチャ)に登録しておくと便利です。
定番の、インストールが成功したかどうかの確認です。以下に、Rexx の実行方法を二つ例示します。
rexxtry.rex を実行すると、コマンドプロンプトが開きます。ここで Rexx コマンドを打ち込むとその場で結果を確認することができます。ここに
say( "Hello World!" )
say( Hello World! )
say "Hello World!"
say 'Hello World!'
say Hello World!
などと入力して実行すると、指定した文字列がそのまま表示されます(もしかしたら、Rexx のバージョンによってはエラーになるものがあるかもしれません。基本的には、一つ目の書き方が基本のはずです)。C 言語などと比べると書式がユルユルなことに違和感を感じる人がいるかもしれません。しかし、それが Rexx の魅力なのです。些細な書式間違いに煩わされることなく、ロジックを書くことが可能なのです。ただし、いずれの書き方も完全に等価な訳ではなく
say( 1+2 )
say( "1+2" )
と書いた場合、前者は計算結果の 3 、後者は計算式の 1+2 が表示されることになります。文字列として表示したい場合は、最初からダブルクォートを付けた方がよいでしょう。
二つ目の方法は、テキストエディタでコマンドを記述し、拡張子を rex として保存しそれを実行する方法です。書くべきコマンドは一つ目と変わりありません。一行だけ書いて保存すればよく、必要であれば何行も書いて構いません。実行したときにコマンドプロンプトが一瞬で消えてしまう場合は、pause
コマンドをファイルの最後に書き足すことでプロンプトを一時停止させることができます。
ここには Rexx コマンドのリファレンスを書く…予定です。
21世紀に入った今、Rexx を扱った書籍を手にいれることは簡単ではありません。OS/2 が盛んだった頃に出版されたものが数冊あるのみで、今後 Rexx 本が新たに書かれる見込みもないことから、「出版社に問い合わせる」「古本屋で手にいれる」「持っている人から譲ってもらう」くらいしか方法がありません。また、多くの本が OS/2 と Rexx を組み合わせて解説したものであると思われるため、OS/2 を所持していない人がどれだけ活用できるのか不透明な面があります。私が所持しているのは Rexx 自由自在というそれほど分厚くない本で、2005 年に出版社から本屋を通して取り寄せました。
やはり、OS/2 上で Rexx を扱う本でした。しかし、コンパイラさえインストールできたならば OS/2 ユーザーでなくてもそれなりに役に立つと思います。Rexx コマンドの実行方法、構造化に必要な分岐・繰り返しの構文、組み込みの関数、OS/2 システムコールなどが解説されています。
書籍と同様、ウェブサイトも壊滅状態です。Google で検索すると、コンピュータ用語辞典の Rexx の項目ばかりヒットします。IBM の本拠地アメリカでは Rexx のサイトがもう少し盛んなのかもしれませんが、国内サイトはあまり存在しません。幾つかのサイトをここに記します。
Open Object Rexx ... Open Object Rexx を Windows で扱うのに必要な一式が拾えます
sourceforge ... こちらの sourceforge から一式をダウンロードすることもできます
Rexx Land Overall ... サンプルコードのほか、Linux Zaurus で動くインタプリタも置いてあります
Rrxx使いの卵 ... 解説ページがあります
Object Rexx を始めよう ... 英語資料の訳文のようです
IBM iSeries Infomation Senter ... IBM製サーバーに関するサポートページですが、Rexx に関する英文の資料が pdf で置いてあります
IBM REXX Family ... IBM本家サイト。もちろん英語
REXXで乗りこなすApache ... 日本IBMサイト内ですが、Apache絡みのページがあります