ARexx は、1987 年に William S. Hawes によって書かれたAmiga用のRexx言語の実装であり、標準の REXX 機能を超えた Amiga 固有の機能が多数あります。ほとんどの REXX 実装と同様に、ARexx はインタープリタ型言語です。ARexx 用に書かれたプログラムは「スクリプト」または「マクロ」と呼ばれ、いくつかのプログラムでは、メイン インターフェイスで ARexx スクリプトをマクロとして実行する機能が提供されています。
ARexx は、「ARexx ポート」を実装するサードパーティ ソフトウェアと簡単に通信できます。Amiga アプリケーションまたはスクリプト[1]は、ARexx が処理する一連のコマンドと関数を定義できるため、ソフトウェアの機能を ARexx で記述されたスクリプトで利用できるようになります。
ARexx は、同じスクリプトから複数のアプリケーションにコマンドと関数を送信できるため、さまざまなプログラムの関数を組み合わせて使用できます。たとえば、ARexx スクリプトでは、データベースからデータを抽出し、そのデータをスプレッドシートに挿入して計算を実行し、その結果に基づいて表やグラフをワード プロセッサドキュメントに挿入できます。
歴史
ARexx は 1987 年に William S. Hawes によって Amiga 向けに開発され、最初に作成されました。これはMike Cowlishawが著書The REXX Language: A Practical Approach to Programmingで説明した REXX 言語に基づいています。[2] ARexx は 1990 年にCommodoreによってAmigaOS 2.0に組み入れられ、その後のすべての AmigaOS リリースに組み入れられました。この ARexx の後のバージョンは公式の REXX 言語に厳密に従っており、Hawes は後にREXX の ANSI標準の起草に携わりました。
ARexx は68000 アセンブリ言語で記述されているため、新しいPPC CPU ではフルスピードで動作できません。そのため、ARexx のバージョンはそれらの CPU 向けに書き直されておらず、MorphOS 3.0 にも含まれていません。William Hawes は Amiga プログラムの開発には関与しておらず、他の Amiga 関連企業も ARexx の新バージョンに資金提供していません。この事実にもかかわらず、ARexx の既存のバージョンは MorphOS では配布されていませんが、引き続き使用されています。
ARexx マニュアルより:
ARexx は、512k バイトの メモリと 2 つのフロッピー ディスク ドライブを搭載したAmiga 1000コンピュータで開発されました。言語プロトタイプはLattice C を使用してC で開発され、製品版はMetacomcoアセンブラ を使用してアセンブリ言語で記述されました。ドキュメントは TxEd [3]エディタを使用して作成され、AmigaTeX を使用してTeXに編集されました。 これは 100% Amiga 製品です。[4]
特徴
ARexx は、他のアプリケーションと通信できるプログラミング言語です。たとえば、ARexx を使用すると、データベース アプリケーションからデータを要求し、それをスプレッドシート アプリケーションに送信できます。この機能をサポートするには、アプリケーションが ARexx からコマンドを受信して実行できる「ARexx 互換」である必要があります。データベース プログラムには、データを検索、取得、保存するコマンドが含まれている場合があります。MicroFiche Filer データベースには、広範な ARexx コマンド セットがあります。テキスト エディターには、その編集コマンド セットに対応する ARexx コマンドが含まれている場合があります。JForth に付属の Textra エディターを使用すると、統合プログラミング環境を提供できます。AmigaVision マルチメディア プレゼンテーション プログラムにも ARexx ポートが組み込まれており、ARexx を使用して他のプログラムを制御できます。
ARexx は、さまざまなプログラムの機能を組み合わせることで、コンピュータのパワーを増強することができます。スタンドアロンの ARexx パッケージは人気があったため、Commodore はそれをAmigaDOSのリリース 2 に組み込みました。
すべての REXX 実装と同様に、ARexx は型なしのデータ表現を使用します。他のプログラミング言語では、整数、浮動小数点数、文字列、文字、ベクトルなどを区別していました。対照的に、REXX システムではすべてのデータを文字列として扱うため、式やアルゴリズムの記述が簡単になります。動的スコープ言語ではよくあることですが、変数は使用前に宣言されず、最初に使用したときに生成されます。
ARexx スクリプトは、実行を監視し、それに応じて応答するエラー処理システムの恩恵を受けます。プログラマーは、必要に応じてプログラムの実行を一時停止および再開できます。
ARexx コマンド セットはシンプルですが、コマンドに加えて、Amiga リファレンスライブラリ(rexxsyslib.library) の機能があります。他のライブラリや個別の機能を追加することも簡単です。ARexx スクリプトは、他の ARexx スクリプトから機能として呼び出すこともできます。ARexx ポートが組み込まれている Amiga プログラムは、その機能を ARexx スクリプトと共有できます。
一般的な問題に対する ARexx ソリューションの例
スクリプトによる新機能の実装
エンド ユーザーが、さまざまなビットマップ イメージファイルを結合してアニメーションを作成するプログラムを使用しているが、イメージ処理機能がない場合、次のアクションを実行する ARexx スクリプトを作成できます。
- ARexxはディレクトリ内の画像ファイルを検索します
- ARexxが最初の画像を読み込む
- ARexxはペイントプログラムをロードします
- 画像はペイントプログラムに読み込まれ、ファイルに変更が加えられる。
- 変更された画像は別のディレクトリに保存されます
- ARexxはディレクトリ内の任意の画像に対して手順を繰り返します
- ペイントプログラムが閉じられ、アニメーションプログラムが読み込まれます
- アニメーションが構築されました
- アニメーションはディレクトリに保存されます
- アニメーションプログラムは終了しました
繰り返しの手順を避ける
EqFiles.rexx [5] は、繰り返しの退屈な手順を自動化するために書かれたシンプルな ARexx スクリプトのよく知られた例です。このスクリプトは、ALeXcompare プログラム[6]を使用してファイルを比較し、一連のファイル内の重複をすべて検出し、結果を別の色で強調表示して出力を返します。
AmigaOSの機能を拡張
ARexx の主な特徴の 1 つは、OS に欠けているいくつかの手順を追加することで AmigaOS の機能を拡張できることです。たとえば、特定の Amiga プログラムが停止したり、エラーが発生したり、スケジュールされたジョブを完了したりした場合に、モニターの画面に警告メッセージを印刷したり、音声警告信号を再生したりするように、単純な ARexx プログラムを作成できます。
次のスクリプトは、発生するイベントに応じて警告を表示する最小限の ARexx スクリプトです。
/* アラーム.rexx */
ARG イベント
イベント= 0の場合は終了、イベント= 1の場合は「プログラムが予期せず終了しました」 、イベント= 2の場合は「プログラムはジョブを終了しました」、イベント= 3 の場合は「選択したディレクトリにデータが見つかりません」と表示されます。
参照
参考文献
- ^ Giguere, Eric. 「ARexx コマンド ホスト」。
- ^ Cowlishaw, Michael (1985). REXX 言語: プログラミングへの実践的アプローチ(第 1 版). Prentice Hall. ISBN 0-13-780651-5。
- ^ 「Amazing_Computing_1986-03_067.JPG」.
- ^ ARexx ユーザーリファレンスマニュアル
- ^ ペルージ、フルビオ。「EqFiles」。
- ^ Kazik, Alex. 「ALeXcompare」.
- 注記
- キャラウェイ、メリル (1992)。『ARexx クックブック』。アルバカーキ、ニューメキシコ州:ホワイトストーン。ISBN 0-9632773-0-8。
- ザマラ、クリス、サリバン、ニック (1991)。Amigaでの Arexx の使用。Abacus Software Inc. ISBN 1-55755-114-6。
外部リンク
- ARexx 入門チュートリアル
- コマンドと関数のリファレンス
- デザインツール
