Rexx ( restructured extended executor ) は、IBMでMike Cowlishawによって開発された高水準プログラミング言語です。[ 6 ] [ 7 ]幅広いコンピューティング プラットフォーム向けに、独自の Rexx インタプリタとオープンソースのRexxインタプリタの両方が存在し、IBMメインフレーム コンピュータ向けにはコンパイラが存在します。[ 8 ] Rexx は、スクリプト、アプリケーションマクロ、およびアプリケーション開発に使用されます。汎用スクリプト言語として、Rexx はTclおよびPythonの前身と考えられています。
Rexx はさまざまな環境でサポートされています。OS /2、MVS、VM、AmigaOSなどの一部のオペレーティングシステムでは主要なスクリプト言語であり、 SPF/PC、KEDIT、THE、ZOCなどの一部のソフトウェアではマクロに使用されています。エンジンがインストールされていれば、Rexx はWindows Scripting Host ActiveXスクリプト エンジン ( VBScriptやJScriptなど) を使用するプログラムのスクリプトやマクロに使用できます。Rexx は VM/SP リリース 3 以降、TSO/E バージョン 2 以降、OS/2 (1.3 以降、正式にはProcedures Language/2という名称)、AmigaOS バージョン 2以降、PC DOS ( 7.0または2000 )、ArcaOS [ 9 ]、および Windows NT 4.0 (リソース キット: Regina) に付属しています。1980 年代後半、Rexx はIBM Systems Application Architectureの共通スクリプト言語となり、「SAA Procedure Language REXX」と改名されました。
スクリプトは、実行時にコンテキストに基づいてさまざまな方法で Rexx インタープリタに関連付けられます。メインフレーム コンピューティングでは、同様のCMS EXEC [ 10 ]およびEXEC 2 [ 11 ]スクリプト、およびVM/SP R3 からz/VMまでの Rexx スクリプトで使用されるファイル タイプの名前がEXECであるため、Rexx スクリプトまたはコマンドはEXECと呼ばれることがあります。スクリプトの最初の行は、コードを Rexx 言語として識別するか、ファイル パスを介して指定することにより、コメントで Rexx インタープリタの使用を指定します。MVS では、Rexx スクリプトは[ a ]低レベル修飾子 "EXEC" で認識されるか、SYSPROC からフェッチされた最初の行が "REXX" を含むコメントである場合、それは Rexx (CLIST ではなく) として扱われ、SYSEXEC からフェッチされたスクリプトは Rexx でなければなりません。Linuxでは、Rexxスクリプトは通常、シェバンで始まります。Rexx対応アプリケーション用のRexxマクロは、アプリケーションによって決定される拡張子を使用します。EXTPROC
当初、この言語はReformed Executorの略でREXと呼ばれていましたが、他の製品との混同を避けるために「X」が追加されました。当初、この名前はすべて大文字でした。マイク・コーリショーによるこの言語に関する最初の本の両版では、表紙のグラフィックでは大文字と小文字が混在していますが、すべて大文字のREXX を使用しています。NetRexx に関する彼の本では、表紙のグラフィックでは大文字と小文字が混在していますが、すべて大文字のN ET R EXX を使用しています。略語に一致する拡張版であるREstructured eXtended eXecutor は、1984 年にシステム製品に使用されました。[ 12 ]
a = "hello world" /* 代入指示 */do i = 1 to 2 /* キーワード命令 "DO" */say "round #" i ":" a /* キーワード命令 "SAY" */end /* キーワード命令 "END" */"echo Hello World" /* オペレーティングシステムへのコマンド */オペレーティングシステムへのコマンドを「echo」します。say "RC:" rc /* コマンドの数値戻りコード */マイク・コーリショーは、1979年3月20日から1982年半ばにかけて、 EXECとEXEC 2という言語を置き換える目的で、アセンブリ言語で言語とそのインタプリタを自分の時間を使って開発しました。[ 6 ]マイクはまた、RexxをPL/Iの簡略化され、学習しやすいバージョンにするつもりでしたが、RexxはPL/Iと問題のある違いがあると主張する人もいます。
Rexxは1981年にテキサス州ヒューストンで開催されたSHARE 56会議で初めて公に発表され[ 13 ] 、 SLACのテッド・ジョンストンが推進した顧客の反応により、1982年にIBM製品として出荷されるに至った。
IBMは長年にわたり、ほぼすべてのオペレーティングシステム(VM/CMS、MVS TSO/E、IBM OS/400、VSE/ESA、MUSIC/SP、AIX、PC DOS、OS/2 )にRexxを組み込み、 Novell NetWare、Windows、Java、Linux向けのバージョンも提供してきました。
IBM以外の最初のバージョンは、1984/5年にCharles DaneyによってPC DOS向けに書かれ[ 7 ]、Mansfield Software Group(1986年にKevin J. Kearneyによって設立)によって販売されました[ 6 ] 。最初のRexxコンパイラは1987年に登場し、LundinとWoodruffによってCMS向けに書かれました[ 14 ] 。その他のバージョンは、AmigaOS、Unix、Solaris、DEC、Windows、Windows CE、Pocket PC、Palm OS、QNX、OS/2、Linux、BeOS、EPOC32 / Symbian、AtheOS、OpenVMS [ 15 ] : 309、およびMac OS X向けにも開発されています[ 16 ]。
Amiga用のRexxインタープリタであるARexxは、AmigaOS 2以降に搭載され、スクリプト作成やアプリケーション制御に広く利用されました。多くのAmigaアプリケーションには「ARexxポート」があり、Rexxスクリプトを介してアプリケーションを制御できます。特に、Rexxスクリプトは複数のアプリケーションを制御するために、複数のRexxポートを切り替えることができます。
1990年、SLACのキャシー・デイガーが初の独立したRexxシンポジウムを主催し、これがRexx言語協会の設立につながった。シンポジウムは毎年開催されている。
1992年に、最も広く使用されている2つのオープンソースポートが登場しました。Unix用のIan CollierのREXX/imcと、WindowsおよびUnix用のAnders ChristensenのRegina [ 5 ](後にMark Hesslingが採用)です。BRexxは、CERNの核科学者であるVasilis N Vlachoudisによって開発されました。Unix、Linux、BSD、macOS、Windowsなど、さまざまなオペレーティングシステムで動作します。サイズが小さいため、 Androidの携帯電話でも動作します。BRexx/370は、IBMメインフレームで動作するバージョンです。[ 15 ] : 359–383 [ 17 ]
OS/2には、Watcom社のVX-REXXというビジュアル開発システムが搭載されていた。また、Hockware社のVisPro REXXという別の開発言語もあった。
Kilowatt社のPortable RexxとQuercus社のPersonal Rexxは、DOS向けに設計された2つのRexxインタープリタであり、コマンドプロンプトを使用すればWindows上でも実行できます。1990年代半ば以降、Rexxの2つの新しい派生版が登場しました。
1996年に米国規格協会(ANSI)はRexxの規格であるANSI X3.274–1996「情報技術 – プログラミング言語REXX」を公表した。[ b ] 1985年以降、Rexxに関する書籍が20冊以上出版されている。
2004年10月12日、IBMは自社のObject REXX実装のソースコードをCommon Public Licenseの下で 公開する計画を発表しました。Object REXXの最新リリースには、このバージョンのRexx言語を実装したActiveX Windows Scripting Host(WSH)スクリプトエンジンが含まれています。
2005年2月22日、Open Object Rexx(ooRexx)の最初の一般公開版が発表されました。この製品にはWSHスクリプトエンジンが含まれており、デフォルトのWSHインストールでVisual BasicやJScriptが実装されているのと同様に、またPerl、Tcl、Pythonといったサードパーティ製スクリプトエンジンと同様に、Rexxを使用してWindowsオペレーティングシステムやアプリケーションをプログラミングすることができます。
2018年1月、TIOBE指数でRexxは30位にランクインした。[ 19 ] 2018年以降、Rexxはトップ50圏外、あるいはより頻繁にはトップ100圏外となっている。
2019年、第30回Rexx言語協会シンポジウムはRexxの40周年を記念して開催された。シンポジウムは、Rexxが最初に設計・実装されたイングランドのハースリーで開催された。[ 20 ]
新機能には高い驚きの要素が伴う可能性があるでしょうか? ユーザーが誤って機能を使用し、予期しない結果と思われる事態を引き起こした場合、その機能は高い驚きの要素を持ち、したがって望ましくありません。必要な機能に高い驚きの要素がある場合は、その機能を再設計する必要があるかもしれません。