Abstracte syntaxis: verschil tussen versies

Verwijderde inhoud Toegevoegde inhoud
Geen bewerkingssamenvatting
Regel 1:
'''Abstracte syntaxis''' is een representatie van data (vaak een bericht dat over een [[communicatie]]kanaal wordt verstuurd of een [[computerprogramma]] dat [[Compilatie (informatica)|gecompileerd]] wordt) die onafhankelijk is van machine-afhankelijke [[Datastructuur|datastructuren]] en coderingen en ook van de werkelijke representatie van de data (in het geval van compileren de ''concrete syntaxis'' genoemd en bij communicatie de ''transfersyntaxis'').
 
In een [[Compilatie (informatica)|compiler]] wordt een computerprogramma gerepresenteerd met behulp van abstracte termen zoals ''identifier'' en ''variable''. Deze representatie is onafhankelijk van de syntaxis van de [[broncode]] (de concrete syntaxis) van het programma dat gecompileerd wordt, ook al zullen deze vaak vergelijkbaar zijn. Een [[syntaxisboom]] is vergelijkbaar met een [[abstractesyntaxisboomabstracte syntaxisboom]] maar het kan ook zaken als [[haakje]]s bevatten die syntactisch gezien wel van belang zijn. Dit soort zaken worden in de abstractesyntaxisboomabstracte syntaxisboom impliciet gelaten.
 
==Voorbeeld==
Regel 15:
:<code>data S = CaseA S | CaseB S S | CaseC</code>
 
De [[String (informatica)|string]] "abacc" (de concrete syntax) kan gerepresenteerd worden met de volgende abstracte syntaxsyntaxis:
 
:<code>CaseA (CaseB (CaseA CaseC) CaseC)</code>