Open Object REXXの環境をWindowsに作ってみた
IBM製のメインコンピュータのz/OS上で稼働するバッチ・プログラムを、REXX言語で開発することにしました。
しかし、メインコンピュータは汎用大型機なので、自分の自由な時間に使用してプログラムを開発する事が出来ません。
そこで、REXXの特徴である、あらゆる OS上にポーティングされていて、z/OSでも Windowsでも同じ REXXプログラムが稼働するという事で、使用している PC(Windows 10)上に REXXの開発環境を作りました。
ここでは、Windows 10上に REXX環境を作った時のログを残しておきたいと思います。
REXXのおさらい
いきなり導入の手順に入る前に、REXXのおさらいをしておきたいと思います。
私は、かなり前にメインコンピュータ上で REXXのプログラムを作っていたのですが、久しぶりに開発しようとするとすっかり忘れていました。(T T)
REXXとは
REXX(Restructured eXtended eXecutor)という言語をご存じでしょうか。
REXXは、1979年3月29日に IBMフェローである Mike Cowlishaw が初期仕様を公開した言語です。かれこれ 42年以上使われ続けている言語になります。
REXXの特徴としては、インタープリター言語で、手続き型言語で、習得が容易であり、メインコンピュータから PCまで、幅広い環境で互換性を維持して稼働することなどがあります。
しかし、REXXを知っているとか、REXXで開発したことがあるという方は少ないのではないでしょうか。
やはり IBM社で開発されて、当初は IBM社のメインコンピュータOS VMの上で稼働し、その後も IBM社製品や関係会社の製品上でしか稼働しなかったからかもしれません。
それでも、2005年には Open source ooRexx (Open Object Rexx)が出て、オブジェクト指向でオープンソースになったことにより、少しは知っている人が増えたかもしれません。
REXX開発の参考書
REXXに関する書籍は、非常に少ないです。
以前は何冊かあったようですが、今は IBM社の REXXのガイドと解説書ぐらいしかないかもしれません。
一番わかりやすいのは、以下のページです。
z/OS上の REXX開発については、ここが一番まとまっていると思います。
しかし、Windows上で動かす ooREXXについては、ネット上でも有効なページを見つけられませんでした。
ooREXXの導入
z/OSでも Windowsでも同じ REXXプログラムが稼働するとはいえ、z/OS固有の機能を使用する部分は、Windowsの機能に書き換えなくてはなりません。一番換えないといけないのは、IOの部分です。
最初、ooRexx-4.2.0.windows.x86_64を導入しました。
しかし、ファイルの読み込みに z/OSの EXECIOの代わりに arrayInを使おうとしたのですが、どうしても配列にデータを読み込んでくれなくて動きません。
そこで、バージョンを下げて ooRexx320-1を再導入したのですが、結果は変わらずでした。
最終的には、arrayInの使用は諦めて、ooRexx 4.1.0から使用できるようになった Rexx Extensions Libraryの HostEmu (ExecIO, HI, TE, TS)を使用することにし、最終的に ooRexx-4.2.0.windows.x86_32を導入しました。
ログとして、ooRexx-4.2.0.windows.x86_32のダウンロード、ooRexx-4.2.0.windows.x86_32のインストール、稼働確認、ooRexx-4.2.0.windows.x86_64のアンインストールの手順をそれぞれ載せます。
ダウンロード
ダウンロードのページは、参考書のWebページからも飛べますが、念のために以下にも貼っておきます。
Downloadsを選択します。
Release 4.2.0の ooRexx install filesを選択します。
ooRexx-4.2.0.windows.x86_32.exeを選択します。
インストール
ダウンロードした exeファイルをダブル・クリックして実行します。
ライセンスに同意します。
デフォルトでコンポーネントが選択されているので、必要に応じて外します。
導入先のディレクトリーを指定します。
Windowsでの実行が楽になるので、rxapiを Windowsサービスとして導入します。
.rexファイルが ooREXXで実行されるように、関連付けします。
デフォルトを選択しました。
エディターは VS Codeを使用しているが、ここではデフォルトを選択しました。
デフォルトを選択しました。
最後の画面が出るので、Installをクリックします。
Installが始まります。
Installが完了したので、必要に応じてチェックを付けて終了します。
稼働確認
helloworld.rexというファイルに、以下の REXXを記述して実行します。
/* REXX */
SAY "Hello, World!";
「Hello, World!」が表示されれば、稼働はOKです。
アンインストール
設定の「アプリと機能」から「Open Object Rexx」を選択し、「アンインストール」をクリックします。
再度「アンインストール」をクリックします。
Uninstallのウィザードが始まります。
rxapiを停止させます。
ディレクトリーも削除します。
最後の確認が表示されるので、「Uninstall」をクリックします。
Uninstallが始まります。
Uninstallが完了しました。
今回のREXXのプログラミングでは、メインコンピュータで実行させることを考慮しました。したがって、トラディショナルなコーディングしかしていません。
ooREXXの特徴であるクラスベースのオブジェクト指向言語的なプログラミングはできていないので、今後勉強していきたいと思います。