Dieser Artikel von Wikipedia ist u.U. veraltet. Die neue Version gibt es hier.
REXX (Abk. f. R estructured Ex tended E x ecutor) ist eine von Michael Cowlishaw bei IBM entwickelte Skriptsprache .
Sie stammt aus dem Großrechnerbereich ( TSO ) wurde aber auch in anderen Produktlinien OS/2 verwendet. Eine angepasste Version erfreute sich auf dem Amiga großer Beliebheit. Mittlerweile sind auch Interpreter fast alle Umgebungen bis hin zum PalmOS erhältlich. 1996 wurde REXX zum ANSI-Standard X3.274-1996 "Information Technology - Programming Language REXX").
REXX ist sehr flexibel. REXX kennt expliziten Variablendeklarationen und auch keine Arrays. Dennoch sich eine Array ähnliche Struktur leicht dadurch indem Variablen indiziert werden:
DO i = 1 to 10 = 10 - i END
Danach existieren folgende Variablen mit folgender zahl.1 = 9 zahl.2 = 8 zahl.3 7 ...
So kann auch eine Variable die ohne Zuweisung als Wort verwendet wurde nach Zuweisung mit diesem Wert benutzt werden:
say hallo => "hallo" hallo = say hallo => 25 hallo = "say + 3" say hallo => "say 5 3" interpret hallo => 8 drop hallo hallo => "hallo"
Auch Rexx hat eine zum GOTO Anweisung: SIGNAL. Richtig angewendet ein sehr nützlicher zum Beispiel dann wenn man Fehler oder Ausnahmesituationen abfabngen will. Aber man kann damit unleserliche schlecht bis gar nicht nachzuvollziehende Source-Codes
/* Ein Rexx-Programm */ signal definieren; say a signal ende; definieren: a = world" signal ausgabe; ende: exit
Es gibt in Rexx die Möglichkeit SIGNAL Fehler abzufangen und mit Ausnahmezuständen umzugehen. gibt dazu die fünf System-Labels: ERROR FAILURE NOVALUE und SYNTAX. Sie können im Quellcode des Ablaufs an und ausgeschaltet werden.
SIGNAL
Beispiel:
signal on halt; a = 1 a = (a + 1) // 10000 a end halt: say "Das Programm wurde Benutzer abgebrochen" exit
error
failure
halt
Programmabbruch
novalue
syntax
Wenn ein Abbruch durch Fehler oder mittels signal on Bedingung umgeleitet wurde kann mittels der Systemvariablen und SIGL der Fehler analysiert werden. RC de Fehlercode von Rexx und SIGL die in der dieser Fehler Aufgetreten ist.
TRACE
TRACE bestimmt die Ablaufverfolgung des Programms. kennt die folgensen Schalter: A C E I L N O R und S.