GOTO in Forth
De
GATE-constructie, onderwerp van dit artikeltje,
is een zelfstandige platte structuur zonder nesting, die zich gedraagt als een Forthwoord.
Hij is dus toepasbaar binnen Forth-programma's en lijkt op een Finite State automaat.
Je kunt er op een overzichtelijke manier die geminachte GOTO-spaghetti-code mee
compileren waar sommige problemen om vragen.
GATE is een geschikt hulpmiddel bij het specificeren of beschrijven van
een bepaald type problemen.
Het heeft iets weg van het invullen van formulieren, met de aardige bijkomstigheid
dat het uitvoerbare code oplevert.
Het zet je op het spoor van een goede factorisering,
waardoor je het probleem gemakkelijker kunt oplossen, ook met gewone Forthcode.
Eerst komt er een toepassingsvoorbeeld aan de hand van
INTERPRET dat
door zijn vertrouwdheid zonder commentaar waarschijnlijk toch meteen leesbaar is.
De
GATE-woorden daarin zijn vetgedrukt.
Om verwarring te vermijden spel ik
INTERPRED met een
D.
Daarna volgt een uitleg van de
GATE-woorden en aan het eind
staat het
GATE-programma dat je samen met het
INTERPRED-voorbeeld
kunt downloaden.
Het zou op ANS Forth moeten werken.
De volledige code staat in de files
c213-gate.frt
en
c213-gate-example.frt