|
Voorwoord
In de jaren 1970 tot en met 1980 werd op veel plaatsen in de wereld met het VM/370
operating system gewerkt. Zoals gebruikelijk in die tijd, werden veel taken geautomatiseerd
door middel van een batch taal. VM's commando taal CMS, had de mogelijkheid op VM commando's
te "verpakken" en samen met programma logica op te slaan in een bestand. De taal waarin
deze batch commando's werden geschreven heette EXEC. Niet lang daarna ontdekte men de
mogelijkheden hiervan. Het concept werd uitgebreid en een universele scripting taal, EXEC2,
werd aangeboden. Het grote nadeel van de scripting talen van die tijd was, dat ze nagenoeg
onleesbaar waren en slechts toegankelijk voor specialisten.
Om ook ingewikkelde programma's en macro's te kunnen bouwen, ontwikkelde de IBM'er
Michael F. Colishaw op basis van PL/I en EXEC2 een geheel nieuwe taal: REXX. Eerst
werd REXX alleen intern bij IBM gebruikt. Later werd er ook door klanten van IBM om gevraagd.
REXX bleek zo universeel toepasbaar, dat IBM besloot REXX als officieel produkt op de markt
te brengen. Vanaf 1982 is REXX beschikbaar. Eerst nog op het VM platform, waar naast de
interpreter ook een compiler verkrijgbaar was. Later volgden versies op MVS, PC-DOS, OS/2,
OS/400, RS/6000 en Windows95/98. Zelfs voor Linux is een versie beschikbaar.
REXX heeft als voordeel dat het een echte gebruikerstaal is. Het verbergt de complexiteit
van de onderliggende hardware. REXX code is goed leesbaar. REXX kent ook maar 1 datatype:
de string. Declaraties zijn niet nodig! REXX kent geen limiet voor wat betreft de lengte van
een string. REXX is envoudig te leren. Het is een echte string manipulatie taal, maar ook
bitbewerking is mogelijk. REXX kent niet het principe van "reserved words", hetgeen betekent
dat de taal toekomstvast is. Mochten er uitbreidingen komen, dan hoeft er niets te worden
herschreven. Software producenten kunnen zowel REXX macro's als uitbreidingen op de taal
verkopen. Het is namelijk mogelijk de taal dynamisch uit te breiden! REXX is systeem en
platform onafhankelijk. Ook bij transport van een EBCDIC machine naar een ASCII machine, zal
een programma onveranderd kunnen draaien. Tenslotte kent REXX een aantal features die andere
talen niet kennen, zoals associatieve tabellen en dynamische scope van variabelen.
De nadelen van REXX zijn de verwerkingstijd. Een REXX programma snoept
nogal wat processortijd op, en draait over het algemeen langzamer dan
een programma geschreven in een andere taal. REXX is dus duur in gebruik
in die omgevingen waar afgerekend wordt op basis van processor gebruik,
meestal dus op het mainframe. Omdat het datatype van REXX de string is,
wordt er nogal vaak geconverteerd, zeker als het om berekeningen gaat.
|