Abstrakti syntaksi - Abstract syntax
In Computer Science , abstrakti syntaksin data on sen rakenne kuvataan datatyypin (mahdollisesti, mutta ei välttämättä, abstrakti tietotyyppi ), joka on riippumaton mitään erityisiä edustuksen tai koodausta. Tätä käytetään erityisesti tekstin esittämiseen tietokoneen kielillä , jotka yleensä tallennetaan puurakenteeseen abstraktina syntaksipuuna . Abstrakti syntaksi, joka koostuu vain tietojen rakenteesta, on vastakohtana konkreettiselle syntaksille , joka sisältää myös tietoja esityksestä. Esimerkiksi konkreettinen syntaksi sisältää ominaisuuksia, kuten sulkeita (ryhmittelyä varten) tai pilkkuja (luetteloille), jotka eivät sisälly abstraktiin syntaksiin, koska ne ovat implisiittisiä rakenteessa.
Abstraktit syntaksit luokitellaan ensimmäisen kertaluvun abstrakteiksi syntakseiksi (FOAS), jos rakenne on abstrakti, mutta nimet (tunnisteet) ovat edelleen konkreettisia (ja edellyttävät siten nimen ratkaisua ), ja korkeamman asteen abstrakteja syntakseja , jos nimet itsessään ovat abstrakteja.
Käyttää
Jotta se voidaan toteuttaa joko laskentaa tai viestintää varten, on määritettävä kuvaus abstraktista syntaksista tiettyihin koneen esityksiin ja koodauksiin. Näitä voidaan kutsua " konkreettiseksi syntaksiksi " (kielen toteutuksessa) tai "siirtosyntakseksi" (viestinnässä).
Kääntäjä 's sisäisen esityksen ohjelman tyypillisesti määritetty abstrakti syntaksin mukaan eri ryhmiin, kuten 'ilmoitus', 'ekspressiovektori' ja 'tunniste'. Tämä on riippumaton käännettävän kielen lähdesyntaksista ( konkreettisesta syntaksista ) (vaikka se on usein hyvin samanlainen). Jäsennyspuu on samanlainen kuin abstrakti syntaksipuun mutta se on tyypillisesti myös sisältää ominaisuuksia, kuten suluissa, jotka ovat syntaktisesti merkittäviä, mutta jotka ovat epäsuorasti Tiivistelmän rakenne syntaksipuun.
Algebralliset tietotyypit sopivat erityisen hyvin abstraktin syntaksin toteuttamiseen.
Katso myös
Viitteet
- Tämä artikkeli perustuu materiaaliin, joka on otettu Free On-line Dictionary of Computingista ennen 1. marraskuuta 2008 ja sisällytetty GFDL : n version 1.3 tai uudemman "lisensointiehtoihin" .