Abstrakt syntaks - Abstract syntax
I informatikk er den abstrakte syntaksen for data strukturen beskrevet som en datatype (muligens, men ikke nødvendigvis, en abstrakt datatype ), uavhengig av en bestemt representasjon eller koding. Dette brukes spesielt i representasjonen av tekst på dataspråk , som vanligvis er lagret i en trestruktur som et abstrakt syntakstre . Abstrakt syntaks, som bare består av datastrukturen, står i kontrast med konkret syntaks , som også inneholder informasjon om representasjonen. For eksempel inkluderer konkret syntaks funksjoner som parenteser (for gruppering) eller kommaer (for lister) som ikke er inkludert i den abstrakte syntaksen, ettersom de er implisitte i strukturen.
Abstrakte syntakser er klassifisert som første ordens abstrakt syntaks (FOAS), hvis strukturen er abstrakt, men navn (identifikatorer) fremdeles er konkrete (og dermed krever navneoppløsning ), og høyere orden abstrakt syntaks , hvis navnene i seg selv er abstrakte.
Bruker
For å implementeres enten for beregning eller kommunikasjon, må en kartlegging fra den abstrakte syntaksen til spesifikke maskinrepresentasjoner og kodinger defineres; disse kan kalles " konkret syntaks " (i språkimplementering) eller "overføringssyntaks" (i kommunikasjon).
En kompilators interne representasjon av et program vil vanligvis bli spesifisert av en abstrakt syntaks når det gjelder kategorier som "setning", "uttrykk" og "identifikator". Dette er uavhengig av kildesyntaksen ( konkret syntaks ) for språket som kompileres (selv om det ofte vil være veldig likt). Et analysetre ligner et abstrakt syntaktre, men det vil vanligvis også inneholde funksjoner som parenteser som er syntaktisk signifikante, men som er implisitte i strukturen til det abstrakte syntaksetreet.
Algebraiske datatyper er spesielt godt egnet for implementering av abstrakt syntaks.
Se også
Referanser
- Denne artikkelen er basert på materiale hentet fra Free On-line Dictionary of Computing før 1. november 2008 og innlemmet under "relicensing" -betingelsene i GFDL , versjon 1.3 eller nyere.