恐竜じゃなかったらソレは何なのか ・・・ つーことで少しばかし解説してみよう。
この解説は, PC-DOSの Rexxオンラインマニュアルを元にアレしているので, 微妙にほかと違うかも知んない。
けど, たぶん似たようなもんだし, 大丈夫かも。(^^)
それから, 以前の Rexxの超簡単な紹介もあるだよ。
Rexxはプログラミング言語。 てゆーか, スプリクト言語つってもよいのかも。 スクリプト言語の定義 (なにを以てスクリプト言語とゆーのか) ってのがよく分からないんだけど, たぶん Rexxもそうなのら。
もともとは, 汎用機(大型こんぴーた)用のソレだったっぽい。 んで, OS/2にはソレが標準装備されているので, もー, いろいろ調べたりすることなく いきなり走らせてもオッケー。 ・・・ よほど古い OS/2とかじゃなければ。
さて, その指定ってゆーか, ソレが Rexxのプログラムだとする identityっつーか, そんなのが必要だったりする。 (←ってなに?)
OS/2でのばーい バッチファイルてゆー, 実行するコマンドを羅列しておくと順に実行してくれるブツがあって, 拡張子を .cmd な感じにしておくとソレと見なされるのら。
実は Rexxもまったく同じ。ただしその先頭の行がコメント /* 〜 */ になっていたら Rexxのプログラム, そうでなかったらバッチファイルて感じ。
UNIX環境での, 先頭行の #! 〜 と雰囲気似てる ・・ かも。
てことで, ごく簡単なプログラムを作ってみる。
/* 足し算 */
say 10 + 20
てゆーか, コレほど簡単ならコマンド行で試したほうが楽だよね。
rexxtry say 10+20
もちろん 30が表示される訳で ソレはソレで何も問題ないんだけど, じゃ say
を取ったらどーなるのか。
そこにバッチファイルのよーなアレ, Restructured Extended Executor Language
たるゆえんが垣間見られるのだ。
rexxtry 10+20 30 SYS1041: 指定された名前 30 は、内部コマンド/外部コマンド/ 実行可能なプログラム名/バッチ・ファイルのいずれでもありません
結果を sayで出力たり, 変数に代入したり, そーゆーことでないのなら, Rexxはソレをコマンドだと解釈して実行しようと試みるのら。 あぁなんて けなげ。 (←けなげなのか? ソレ)
てことで, こんなこともできるあるよ (↓)。先ほどのよーに先頭行にコメントを付けるか, rexxtryを実行して, 一行ずつ入力すると試すことができたりする。さぁ, みんなもやってミソ。
flag = word('od p w', 1) /* ← 一つ目のの項目 'od'を代入する */ sw = '/' 'dir '||sw||flag /* ← dirが実行される */
んで, スクリプト言語としての側面はとゆーと そこそこ, それなりの機能は持ってるだよ。
ループだとか条件判断, select〜whenもあるにょ。
んで, もちろん連想配列もあるだよ。けど, ホントの配列(添字に数値を使うタイプ)てのがなかったりする。あはははは。(^^)
do i = 1 to 10
say array.i /* ← 「array[i]」みたいな感じ */
end
普通の配列はこんな感じで, 二次元配列のばーいは たとえばこーゆー感じ → array.i.j
だけどソレは, 次(↓)のプログラム動かしてみると, 仕組みはなんとなく理解できるはず。
このプログラムも (↑)と同様, 先頭にコメントをつけて実行するか rexxtry を使ってほしいなり。
array.1.2 = '二次元配列の要素 [1,2]のとこ' n = '1.2' say array.n
つまり, 他のスクリプト言語でゆーところの array["1.2"] て感じかな。 くわしくは 複合記号(Compound Symbols) てとこを見てけろ。
だけど, 欠点っぽいのもない訳じゃない。
C言語になれている人にとって, 混乱してしまいそーなとこがあるのら。
C言語 | Rexx | 備考 | |
---|---|---|---|
&& の意味 | 論理AND | XOR | Rexxでは AND, ORは & | を使う。 条件によってはアレしないとか, そーゆーのは無理。 |
|| の意味 | 論理OR | 文字列結合 | |
NOT | ! | \ | Rexxでは a \= b とか a <> b とか指定する。 |
ほかにも そーゆーのを教えてくれそなサイト もあるので調べてみるとよいかも。