Wat is een syntaxdiagram?

Parent Previous Next


Wat is een syntaxdiagram?


Elke (programmeer)taal heeft een aantal regels die beschrijven hoe de taal is opgebouwd, en waarmee men kan bepalen welke zinnen tot deze taal behoren.


Zulke regels kan men natuurlijk met gewoon Nederlands weergeven, maar het blijkt erg moeilijk om met het Nederlands zeer precies de regels te formuleren. Daarom gebruikt men vaak wiskundige formules, die niet voor tweeërlei uitleg vatbaar zijn.

Het is ook mogelijk om de regels niet met een formule weer te geven, maar schematisch, met een diagram. Zulk een diagram is voor iedereen gemakkelijk te begrijpen en te gebruiken.


In een syntaxdiagram maak men gebruik van twee soorten "eenheden" (weergegeven met "blokjes") en van verbindingen tussen die eenheden.  Verder heeft elke diagram een beginpunt en een eindpunt.


De twee soorten eenheden zijn:


De verbindingen hebben de vorm van een pijl. De pijlrichting geeft aan op welke wijze men "door het diagram mag lopen".

De pijlen gaan van een eenheid naar een eenheid of naar een eindpunt.

Pijlen zien er als volgt uit:    


Men begint altijd bij het beginpunt van een diagram, dat altijd links is geplaatst. Het eindpunt staat altijd rechts.

Een begin- of eindpunt wordt getekend als:  


Een syntaxdiagram zou men kunnen vergelijken met een "rangeerterrein": de trein begint links en kan al dan niet via afslaande wissels het eindpunt, rechts, bereiken:



naam


Bovenstaand diagram geeft weer hoe een naam kan worden verkregen. Men begint bij het beginpunt (links), moet dan naar rechts voorbij de elementaire eenheid "een letter", in de richting van de pijl, vervolgens naar de volgende elementaire eenheid, Daarna heeft men de keus: direct naar het eindpunt (rechts), óf terug naar de elementaire eenheid "letter, cijfer of _", en later naar het eindpunt. Wanneer men via een elementaire eenheid komt wordt opgeschreven wat deze 'produceert'. Aan het eindpunt heeft men een voorstelling van een naam.


Voorbeelden van een naam zijn: "a", "abc", "jan_de_groot".

Maar niet: "van 't hul", omdat hier spaties zijn gebruikt en een bovenkomma, die niet in een elementaire eenheid van het gebruikte diagram voorkomt! Ook niet "3a" omdat een naam niet met een cijfer mag beginnen.


Het volgende syntaxdiagram bevat een elders gedefinieerde eenheid:



lijsttype

   

Dit diagram levert een stukje van de taal PIPL op dat een lijsttype wordt genoemd. Men begint weer bij het beginpunt (links) en kiest eerst welke 'afslag' wordt genomen: b.v. die van "numberlist" (levert op: numberlist), vervolgens wordt "[" gepasseerd (geeft dus: numberlist[). Nu komt de gedefinieerde eenheid "getal". Hiervoor schakelt men naar het diagram getal:



getal  

 

Dit diagram levert b.v. op: 25. Hierna gaat men weer terug naar het diagram lijsttype: het resultaat hiervan is na het uitvoeren van getal: numberlist[25. Tot slot volgt nog "]" en men bereikt het eindpunt, rechts. Totale resultaat voor een lijsttype in PIPL is dus numberlist[25].


Met bovenstaande voorbeelden is duidelijk gemaakt hoe syntaxdiagrammen kunnen worden gebruikt om correcte taalelementen van de taal PIPL te genereren.





Created with the Personal Edition of HelpNDoc: Easily create HTML Help documents