Studium, Ausbildung und Beruf

web uni-protokolle.de
 powered by
NachrichtenLexikonProtokolleBücherForenSonntag, 27. Mai 2012 

REXX


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"  

Inhaltsverzeichnis

Das negative Beispiel

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  

Fehler- und Ausnahmebehandlung in Rexx

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.

Fehlercodes

RC - Code: Bedeutung: RC - Code: Bedeutung:
4 Programmunterbrechung 26 Ungültige ganze Zahl
5 Recourcen erschöpft 27 Ungültige DO Syntax
6 Unpaarige Zeichen "/*" 28 Ungültiges LEAVE oder ITERATE
7 WHEN oder OTHERWISE erwartet 29 Umgebungsname zu lang
8 Unerwartetes THEN oder ELSE 30 Name oder Kette zu lang
9 Unerwartetes WHEN oder OTHERWISE 31 Name beginnt mit Nummer oder .
10 Unerwatetes oder unpassendes END 33 Ungültiges Ausdrucksergebnis
11 Steuerstapel voll 34 Logischer Wert nicht 0 oder 1
12 Klausel zu lang 35 Ungültiger Ausdruck
13 Ungültige Zeichen im Programm 36 Unpaariges ")"
14 Unvolständiges DO/SELECT/IF 37 Unpaariges "(" oder unerwartetes " "
15 Ungültige hexadezimale Konstante 38 Ungültige Schablone oder Muster
16 Marke nicht gefunden 39 Auswertungsstapel-Überlauf
17 Unerwartete PROCEDURE 40 Inkorrekter Routinenaufruf
18 THEN erwartet 41 Schlechte Arithmetik-Umformung
19 Kette oder Symbol erwartet 42 Arithmetischer Überlauf/Unterlauf
20 Symbol erwartet 43 Routine nicht gefunden
21 Ungültige Daten am Ende der Klausel 44 Die Funktion gab keine Daten zurück
22 Ungültige Zeichenkette 45 Bei der Funktion Return sind keine angegeben
24 Ungültige TRACE-Anforderung 48 Ausfall im Systemservice
25 Ungültiges Unter-Schlüsselwort gefunden 49 Interpretationsfehler

Literatur

  • The Rexx Language: A Practical Approach Programming von Michael Cowlishaw ISBN: 0137806515

Weblinks




Bücher zum Thema REXX

Dieser Artikel von Wikipedia unterliegt der GNU FDL.

ImpressumLesezeichen setzenSeite versendenSeite drucken

HTML-Code zum Verweis auf diese Seite:
<a href="http://www.uni-protokolle.de/Lexikon/REXX.html">REXX </a>