# Programmeren in REXX

REXX is een programmeertaal, ontstaan op het VM/370 besturingssysteem (nu z/VM) voor IBM mainframes. Er bestaan nu REXX versies voor praktisch alle besturingssystemen.
Lees het artikel REXX voor meer uitleg over ontstaan en geschiedenis. Het artikel van Rene Jansen op is een mooi pleidooi voor het gebruik en verspreiden van REXX.
Door de jaren heen zijn er verschillende varianten gemaakt. Wij zullen hier gebruik maken van de Object REXX (OORexx) versie. Hoewel hiermee ook Object Oriëntatie mogelijk is, kiezen we voor een klassieke programmeertechniek, zodat het boek ook grotendeels bruikbaar blijft voor andere implementaties.
In dit boek overlopen we de karakteristieken en mogelijkheden van deze programmeertaal. We voegen telkens voorbeelden toe, geven tips, en wijzen op de addertjes onder het gras. Dit zou het voor de lezer mogelijk moeten maken snel aan de slag te kunnen gaan.
REXX is in de eerste plaats ontwikkeld om het de programmeur - en niet de ontwikkelaar - gemakkelijk te maken. De werking van het onderliggend systeem wordt zo veel als mogelijk weggestopt. Zo kent REXX slechts één type variabelen, zodat vooraf declareren en initialiseren ervan niet nodig is. Courante (Engelse) woorden worden gebruikt voor instructies of functies, en het aantal syntactische regels is beperkt is. Daardoor worden leesbaarheid en ontwikkeling sterk bevorderd. Een beginneling zal met REXX snel aan concrete projecten kunnen beginnen.

# Hoofdstukken

* Voor je begint
* Fundamenten
* Bevelen, deel 1
* Functies, reeks 1
* Ons eerste programma met REXX
* Bevelen, deel 2
* Functies, reeks 2
* Parse in nog meer detail
* Nog bevelen en functies
* Een tweede uitgewerkt voorbeeldprogramma
* Commando's van het besturingssysteem uitvoeren
* Traceren en debuggen
* Nuttige REXXUtil functies
* Bestanden lezen en schrijven
* Toch een beetje OORexx
* Nog andere voorbeeldprogramma's
* Index

# Conventies in de tekst

Bij de beschrijving van bevelen of functies worden optionele parameters tussen vierkante haken [ ] geplaatst. Als ze niet worden ingevoerd, worden dikwijls standaardwaarden verondersteld. Wij gebruiken dan volgende notatie om aan te duiden welke waarde standaard zal gebruikt:
Als de parameter niet wordt ingevoerd zal hier de onderlijnde waarde voor worden aangenomen, hier 1 dus.
Het resultaat van een bewerking schrijven we tussen « » tekens. Deze tekens zelf maken geen deel uit van het resultaat, maar laten toe te tonen of er spaties voor- of achteraan het resultaat staan.
We verkiezen in de cursus toch gebruik te maken van de Engelse termen. Dat maakt het lezen van de officiële gebruiksaanwijzing al wat gemakkelijker. Zo spreken we van een string als we een reeks opeenvolgende karakters bedoelen. Met statement bedoelen we dan weer een uit te voeren programmalijn. We leggen de termen wel uit wanneer we ze tegenkomen.
Soms plaatsen we een vraag in de tekst. Deze zien er zo uit:
Om het antwoord te kunnen lezen moet men op "uitklappen" klikken, doch het is natuurlijk de bedoeling om de vraag eerst te proberen op te lossen.

# Externe links

* Object REXX (gebruikt voor deze cursus)
* Documentatie over Object REXX, in HTML of PDF formaat
* Allerhande informatie en documentatie over REXX
* V3R1.0 REXX/VM User's Guide
* Een REXX cursus voor z/VM systeem
* Waarom REXX ?

# Referenties

* Object Rexx Reference

# Andere sites met uitleg of lessen over REXX in het Engels

* Vladimir Zabrodsky's Album of Algorithms and Techniques for Standard Rexx
* Vladimir Zabrodsky's An Introduction to the Rexx Programming Language
* PLEAC-REXX: Programming Language Examples Alike Cookbook for REXX
* Rexx Frequently Asked Questions (FAQ)
* Introductory Rexx Tutorial, SHARE, Spring 1997
* Een REXX cursus voor het z/VM systeem

# Andere versies van REXX (freeware)

* Regina: open-source (LGPL) interpreter voor Linux, BSD, Windows, etc.
* BREXX: interpreter voor Linux, DOS, Windows CE, etc..
* Reginald: gratis interpreter voor Windows.
* r4: freeware interpreter voor Windows van Kilowatt Software (verschillende).
* gratis REXX-compiler (demoversie van quercus-sys.com)