|
De eerste stap
Wat is een identifier
Voor elke programmeertaal geldt dat je, voordat je kunt
beginnen, moet weten wat een identifier is. Een identifier is een naam
die gebruikt wordt voor elk soort variabele, functie, gegevens definitie,
enzovoort. In de programmeertaal REXX is een identifier een combinatie
van alfanumerieke tekens. Het eerste teken moet een letter uit het alfabet
zijn of een onderstreping (_), de andere tekens mogen naast letters
en de onderstreping ook getallen zijn.
Grote en kleine letters worden in de taal REXX als aan elkaar gelijk
gezien. De variabele INDEX is bijvoorbeeld dezelfde als Index
en deze zijn ook weer gelijk aan InDeX. Alle drie refereren
ze aan dezelfde variabele. De REXX interpreter neemt alle tekens van
een naam als identifier, er wordt dus niet afgekapt. Het is dus mogelijk
lange namen te kiezen.
Sommige interpreters accepteren ook vreemde tekens, zoals het $
teken in identifiers. Om reden van overdraagbaarheid van programma
code wordt aangeraden hiervan af te zien.
De onderstreping
Hoewel een onderstreping dus is toegestaan in identifiers,
wordt dit teken toch maar heel weinig gebruikt. Het maakt programma's
beter leesbaar, dat wel, doch het is een soort afspraak geworden alleen
systeem variabelen en macro namen met onderstrepingen te schrijven.
In een computer programma zijn twee zaken te onderscheiden, de gegevens
en de programma code. Ze zijn sterk afhankelijk van elkaar en daarom
moet naast de code ook veel aandacht worden besteedt aan de data structuren.
In deze cursus zal ook aan de structurering van de gegevens aandacht
worden besteed.
De opbouw van de cursus
Het is de bedoeling stap voor stap de programma voorbeelden te bestuderen.
Elk voorbeeld staat op zichzelf en kan worden uitgevoerd. De programma
voorbeelden werden uit een groter geheel gelicht en zullen, naarmate de
cursus vordert, weer tot het totale programma leiden.
Op deze manier kan telkens een bepaald onderwerp uit de REXX taal
worden bestudeerd en geleerd. Er kan worden veranderd, om zo de effecten
van bepaalde statements te onderzoeken. Sommige cursussen gaan heel
diep en gedetailleerd op de REXX taal in, met als gevolg dat de motivatie
om deze taal te leren zeer ver daalt.
Deze cursus doet dat niet. Hier wordt geprobeerd om op vlotte wijze
met de REXX taal om te gaan, waardoor de motivatie om te leren blijft.
Nadat alle losse onderdelen zijn bestudeerd, wordt een spel programma
gepresenteerd (Tripple Yahtzee), waarin alle geleerde onderwerpen
voorkomen. Op deze manier kan men zien hoe een werkelijk werkend programma
in REXX wordt opgebouwd. Daarbij zullen ook typisch PC zaken als scherm
aansturing aan bod komen.
Je zult steeds worden uitgenodigd om een programma in te tikken,
waarbij een programma naam tussen haakjes staat vermeld. Je kunt het
programma dan intikken en onder die naam wegschrijven op schijf. In
de meeste gevallen is het programma met die naam al op schijf aanwezig;
intikken is dan niet nodig. Bestuderen van het programma is wel nodig.
Het programma kan het worden uitgevoerd, om te zien of dat wat het
programma doet ook is wat je ervan verwacht.
Het interpreteren
Met een programma editor, bijvoorbeeld Wordpad op de PC of EPM op de
PS/2, kan programma tekst worden aangemaakt. Tik het volgende programma
(HELLO.rex) in:
/* REXX */ main: Say 'Hello, world
...'; Exit 0
Je kunt dit programma uitvoeren door in te tikken: Rexx hello
Je eerste REXX programma
De beste manier om met REXX te beginnen is om eens naar een programma
te kijken. Laten we daarom eens nader naar het HELLO.rex programma gaan
kijken. Het is een erg eenvoudig programma. Er kan niet veel aan dit programma
vereenvoudigd worden. Het programma laat een tekstregel op de monitor
zien.
/* REXX */ main: Say 'Hello, world
...'; Exit 0
De eerste regel is erg belangrijk. Deze mag niet worden weggelaten.
Dit is tevens het punt waarop de uitvoering van het programma begint
(Entry point). We zullen later zien dat dit het eerste statement in
het programma moet te zijn. Een REXX programma begint dus altijd met
/* REXX */.
Achter de labelnaam (main) volgt een dubbele punt, die aangeeft dat
dit een functie is. Op het begrip functie zal later uitgebreid worden
terug gekomen. Op dit moment is het voldoende om te weten dat de dubbele
punt nodig is. In dit geval staan er maar twee statements in de functie.
Deze statements zijn zelf ook weer functies. Nogmaals, we zullen het
begrip functie later toelichten.
Om tekst op de monitor af te drukken, wordt hier de tekst als string
parameter, d.w.z. omsloten door apostrof (') aan een uitvoer functie
(Say) gegeven. Het resultaat zal zijn dat alles wat tussen de apostrofs
staat op de monitor zal worden afgedrukt. Merk op dat aan het einde
van het statement een punt-komma (;) staat. REXX gebruikt de punt-komma
als einde statement indicatie. Voor de interpreter is dit een teken
dat de programma regel hier eindigt. Het gebruik van de punt-komma
is niet verplicht als er maar een (1) statement op de regel staat.
Je kunt het programma interpreteren en uitvoeren; het is een uitvoerbaar
REXX programma. Doe dit nu.
Nog een REXX programma
Bekijk nu het programma DRUKAF.rex. Het lijkt erg veel op het vorige
programma, echter er zijn nu meer statements en er wordt meer afgedrukt.
Er staan vier statements in dit programma, drie Say functie aanroepen
en een Exit functie aanroep. De bovenste regel wordt het eerst uitgevoerd,
dan de tweede, vervolgens de derde en de vierde. De statements worden
dus uitgevoerd van boven naar beneden. De Exit functie laat het programma
eindigen.
/* REXX */ Say 'Dit is een regel tekst.' Say 'En dit
is nog een regel tekst.' Say 'Dit is de laatste regel tekst.' Exit 0
Het eerste Say statement drukt een regel af en zet de cursor op een
nieuwe regel. Het tweede en derde statement idem. Er wordt dus telkens
naar een nieuwe regel gesprongen. Draai dit programma en kijk of het
werkt zoals hierboven beschreven.
Laten we eens getallen afdrukken
Bekijk nu het programma NUMMERS.rex om te zien hoe we met gegevens werken
in REXX. Het woord main zal nu duidelijk zijn. Met de toekenning 'GETAL
= 13' wordt tegelijkertijd een variabele gedeclareerd en een waarde daaraan
toegekend, in dit geval 13.
/*
REXX */ main: GETAL = 13 Say 'De waarde van het getal is 'GETAL GETAL =
27 Say 'De waarde van het getal is 'GETAL GETAL = 10 Say 'De waarde van
het getal is 'GETAL Exit 0
De naam van de variabele, hier GETAL, kan elke naam zijn die voldoet
aan de regels voor een identifier. Het programma kent drie keer achter
elkaar een waarde toe aan de variabele GETAL (13, 27 en 10) en drukt die
af. Het mag duidelijk zijn dat GETAL inderdaad een variabele is,
waarin verschillende waarden kunnen worden opgeslagen. We zullen later
nog zien dat REXX niet kritisch is, wat betreft het datatype van die waarde.
|