REXX

REXX

REXX(Restructured Extended Executor)是IBM在1980年代發明的一種程序設計語言。主要用在IBM的大型計算機(Mainframe Computer)上,在VSEVMOS/400、AIXOS/2其他的IBM平台上也可以找到它的解譯器或編譯器。另有面向對象的版本,成為ObjectRexx。

發展歷程


從 Rexx 誕生起,IBM 就將各種版本的 Rexx 加入到它的操作系統中 —— 從主機到中型機再到終端用戶操作系統,比如 OS/2 和 PC-DOS。其他 OS 製造商,比如 Amiga,也將 Rexx 作為永遠可用的系統腳本語言集成進來。此外,許多獨立軟體開發商為很多平台創建了 Rexx 環境。再晚些時候,ANSI 於 1996 年正式為 Rexx 採納了一個標準。
當前(尤其是在 Linux 或者起源於 BSD 的 OS 上),Rexx 的那些大部分早期實現,主要作為歷史足跡為人們所關心。不過,兩個當前保持的 Rexx 實現可以用於包括 Linux、MacOSX 和 Windows 在內的許多平台:Regina 和NetRexx。Regina 是本地執行文件,以免費軟體源代碼方式,或者為諸多平台預編譯好的方式獲得 —— 您可以像安裝任何其他語言解釋器一樣安裝它。NetRexx 是一個有趣的“混合物”。此語言派生自普通的 Rexx。更類似於 Jython 或者 Jacl,NetRexx 將類似於 Rexx 源代碼編譯為 Java 位元組代碼,並(可選)在 JVM 中運行作為結果生成的 .class 文件。
NetRexx 是一個 IBM 項目,用於為 Java 虛擬機編譯類似於 Rexx 的代碼。在實際能力和編程級別上,Rexx 最接近於 bash 加上 GNU 文件工具(外加 grep 和 sed );或者可能相當於 awk 或 Perl。當然,相對於 PythonRuby 或者Java 來說,Rexx 讓人感覺更為快而粗糙。Rexx 的冗長 —— 或者更應該說是,簡潔 —— 類似於 Perl、Python、Ruby 或者 TCL。並且,Rexx 當然是完全 Turing 的,支持模塊和結構化編程,有面向專門任務的庫,例如 GUI 介面、網路編程和資料庫訪問。但是它最自然的目標在於系統腳本的自動化和本文處理任務。與shell 腳本一起,Rexx 使得應用程序的控制非常自然且顯而易見;但相對於 bash (或者 tcsh 、 ksh 等等),Rexx 中包含了更豐富的內置控制結構和(文本處理)函數
在文體上,Rexx 的 IBM/mainframe 根源體現在它對命令的大小寫敏感;在某種次要程度上也體現在它使用標點符號相對較少(更多用關鍵字而不是符號)。我傾向於認為這些特性的目的是提高可讀性;但這在很大程度上取決於個人的愛好。

語言特點


十進位浮點數算術:能準確計算表示和計算0.1之類的數字。
Rexx 一個層次非常高的腳本語言,有特彆強大的用於文本處理任務的工具。

語言組成


基本的 REXX 組成包括了指令和內置函數兩部分,此外 TSO/E 環境下的 REXX 還提供了外部函數以及數據堆棧函數等。