SYNTAXIS
In de informatica verwijst de term syntaxis van een computertaal naar de reeks regels die de combinatie van symbolen definiƫren die in die taal als een correct gestructureerd fragment of document worden beschouwd. Dit geldt zowel voor opmaaktalen, waar het document data vertegenwoordigt, als programmeertalen, waar het document de broncode vertegenwoordigt. De syntaxis van een taal definieert de oppervlaktevorm. Computertalen die op tekst zijn gebaseerd, zijn gebaseerd op de reeksen tekens. Visuele programmeertalen daarentegen zijn gebaseerd op de verbinding tussen symbolen (die grafisch of tekstueel kunnen zijn) en op de ruimtelijke lay-out. Documenten die toevallig syntactisch ongeldig zijn, zouden een syntaxisfout hebben.
Syntaxis - de vorm - staat in contrast met semantiek - de betekenis. Bij de verwerking van computertalen komt semantische verwerking normaal gesproken na syntactische verwerking. In sommige gevallen is semantische verwerking echter belangrijk voor volledige syntactische analyse en worden ze daarom gelijktijdig of samen uitgevoerd. In een compiler omvat de syntactische analyse de frontend, terwijl de semantische analyse de backend omvat (en het middeneinde in gevallen waarin de fase wordt onderscheiden).
NIVEAUS VAN SYNTAX
De syntaxis van computertaal wordt normaal gesproken in drie verschillende niveaus onderscheiden:
Door op deze manier onderscheid te maken ontstaat modulariteit waardoor elk niveau zowel afzonderlijk als vaak onafhankelijk kan worden beschreven en verwerkt. Het begint met een lexer die de lineaire reeks tekens omzet in een lineaire reeks tokens: dit wordt lexicale analyse of lexing genoemd .
Ten tweede verandert de parser de lineaire reeks tokens in wat een hiƫrarchische syntaxisboom wordt genoemd. Dit wordt parseren genoemd .
Ten derde lost de contextuele analyse controles en namen van typen op. De parseerfase zelf kan in twee delen worden onderverdeeld: de concrete syntaxboom of de parseboom die door de grammatica wordt bepaald, maar te gedetailleerd is voor praktisch gebruik, en de abstracte syntaxboom (AST), die dit vereenvoudigt tot een vorm dat is bruikbaar.
SYNTAX VERSUS semantiek
De syntaxis van een taal beschrijft de vorm van een geldig programma, maar geeft geen informatie over de betekenis van het programma of de resultaten die gepaard gaan met het uitvoeren van dat programma. De betekenis die aan een combinatie van symbolen wordt gegeven, wordt afgehandeld door semantiek (hetzij hard gecodeerd of formeel in een referentie-implementatie). Niet alle programma's die syntactisch correct zijn, zijn semantisch correct. Een groot aantal van de syntactisch correcte programma's is niettemin slecht gevormd, volgens de regels van de taal; en kan (zowel met betrekking tot de taalspecificatie als de deugdelijkheid van de implementatie) leiden tot een fout bij de uitvoering of vertaling. In sommige gevallen kunnen dergelijke programma's ongedefinieerd gedrag vertonen. Zelfs op momenten dat een programma goed gedefinieerd is in een taal, kan het een betekenis hebben die niet door de schrijver bedoeld is.
In het voorbeeld van een natuurlijke taal kan het onmogelijk zijn om een zin te geven die grammaticaal correct is. Bijvoorbeeld,