Programmeren in REXX/Fundamenten: verschil tussen versies

Verwijderde inhoud Toegevoegde inhoud
GuyDC (overleg | bijdragen)
Geen bewerkingssamenvatting
GuyDC (overleg | bijdragen)
Toevoeging van uitleg stack
Regel 3:
=Fundamenten van REXX=
 
In dit hoofdstukje bespreken we de voornaamste karakteristieken van REXX, zoals zijn typische kenmerken, bouwstenen en syntaxis.
 
==Typische kenmerken==
Fundamenteel aan REXX is dat alle woorden binnen het programma intern als karakterreeks worden opgeslagen.
Het is enkel in die gevallen dat een numerieke bewerking verwacht wordt, dat er een interne conversie van karakters naar getallen zal gebeuren. Na de bewerking zal het resultaat teruggegeven worden in de vorm van een karakterreeks.
Regel 8 ⟶ 11:
Dit heeft als voornaamste gevolg dat er geen declaraties moeten worden gemaakt voor variabelen, zoals in de meeste andere programmeertalen wel het geval is.
 
Daarnaast is REXX in de meeste gevallen een ''interpreter''. Enkel op mainframe besturingssystemen (zOS en zVM) bestaan compilers voor REXX.
 
Hiermee wordt bedoeld dat REXX het programma lijn voor lijn in 2 afzonderlijke stappen zal uitvoeren. De eerste stap is een interpretatie van de instructie en omzetting naar interne code (te vergelijken met een compilatie) en als tweede stap de uitvoering. Er zijn wel optimalisaties voorzien om niet telkens de interpretatiestap te hoeven doen, bv. in geval van een lus. Maar dit heeft als gevolg dat REXX, in uitvoeringssnelheid, in de meeste gevallen niet kan winnen van gecompileerde programma's. Daartegenover staat echter een mogelijkheid véél sneller een werkend programma te bekomen.
 
Velen beschouwen REXX in eerste instantie enkel als een vervanger voor BAT-files (en ook op de mainframe was dat het eerste doel). Doch, de taal is volledig genoeg om er ook alle andere klassieke programmatietaken mee te vervullen. Op de snelle PC's (en zeker mainframes) van tegenwoordig kan deze tragere uitvoeringstijd een verwaarloosbare handicap zijn, en ruimschoots gecompenseerd worden door de snelheid van ontwikkeling. Zeker in die gevallen waar het programma slechts sporadisch of zelfs éénmalig moet worden uitgevoerd zal REXX een zeer interessant alternatief voor andere programmeertalen zijn.
 
==Bouwstenen==
Een REXX programma bestaat uit
* commentaren
Regel 15 ⟶ 25:
* functies
 
==Bouwstenen==
===Commentaren===
Commentaren worden in REXX begrensd door een beginnende <span style="color:red">/*</span> en een eindigende <span style="color:red">*/</span>.
Regel 164 ⟶ 173:
a="Dit is een hele volzin"
jan.a=17
zal dus het element ''<u>'JAN.Dit is een hele volzin</u>''' de waarde 17 toekennen. Dit geeft interessante mogelijkheden waar we later nog zullen op terugkomen.
 
==Programmabuffer ofte Stack==
Gegevens die ingevoerd worden vanuit externe bronnen - meestal het toetsenbord, maar ook andere programma's - kunnen in de zogenaamde '''stack''' of programmabuffer worden opgeslagen in afwachting van verwerking.
 
We kunnen deze buffer vergelijken met een stapel speelkaarten. Er kunnen kaarten onderaan of bovenaan worden toegevoegd. Ze worden steeds vanaf boven terug weggenomen. Als ze onderaan worden toegevoegd zullen ze dus als laatste terug van de stapel worden genomen en spreken we van FIFO (First In, First Out). De kaarten kruipen als het waren van onder naar boven.
 
Worden ze echter bovenaan bijgevoegd, dan zullen ze dus als eerste terug worden weggenomen en spreken we van LIFO (Last In, Last Out).
 
Er zijn verschillende instructies ('''[[Programmeren in REXX/Syntaxis#PARSE|PARSE]],'''
'''[[Programmeren in REXX/Syntaxis#PULL|PULL]],'''
'''[[Programmeren in REXX/Syntaxis#PUSH|PUSH]],'''
'''[[Programmeren in REXX/Syntaxis#QUEUE|QUEUE]],''') die met de stack werken, en we zullen ze bestuderen in het volgende hoofdstuk.
{{sub}}
Informatie afkomstig van https://nl.wikibooks.org Wikibooks NL.
Wikibooks NL is onderdeel van de wikimediafoundation.