Kielitieteen ja tietojenkäsittelytieteen syntaktinen analyysi (tai jäsentäminen , slangin jäsentäminen ← Englanninkielinen jäsennys ) on prosessi, jossa verrataan luonnollisen tai muodollisen kielen lineaarista lekseemisarjaa (sanoja, merkkejä) sen muodolliseen kielioppiin . Tuloksena on yleensä jäsennyspuu (syntaksipuu). Yleensä käytetään leksikaalisen analyysin yhteydessä .
Jäsenin ( slangi parser ← englanniksi parser ) on ohjelma tai ohjelman osa, joka suorittaa jäsennyksen.
Jäsennyksen aikana lähdeteksti muunnetaan tietorakenteeksi , yleensä puuksi, joka kuvastaa syöttösekvenssin syntaktista rakennetta ja sopii hyvin jatkokäsittelyyn.
Pääsääntöisesti syntaktisen analyysin tulos on lauseen syntaktinen rakenne, joka esitetään joko riippuvuuspuun muodossa tai komponenttipuun muodossa tai jonkin ensimmäisen ja toisen esitystavan yhdistelmänä .
Kaikki, jolla on " syntaksi ", sopii automaattiseen jäsennykseen.
Yksinkertaisin tapa vastata virheelliseen syöttömerkkijonoon on lopettaa jäsentäminen ja näyttää virheilmoitus. Usein on kuitenkin hyödyllistä löytää mahdollisimman monta virhettä yhdellä jäsennysyrityksellä. Näin käyttäytyvät yleisimpien ohjelmointikielten kääntäjät.
Jäsentimen virhekäsittelijällä on siis seuraavat tehtävät:
Tunnetuimmat virheenpalautusstrategiat kuvataan alla.
Kun virhe havaitaan, jäsentäjä ohittaa syöttötunnisteet yksi kerrallaan, kunnes löydetään yksi erityisesti määritellyistä synkronointivalteista . Yleensä tällaiset merkit ovat erottimia, esimerkiksi: ; , ) tai } . Analysoitavan kielen kehittäjän on määritettävä synkronointitunnisteiden joukko. Tällä palautusstrategialla saattaa olla, että huomattava määrä merkkejä ohitetaan tarkistamatta lisävirheitä. Tämä palautusstrategia on helpoin toteuttaa.
Joskus, kun virhe havaitaan, jäsentäjä voi suorittaa paikallisen korjauksen tulovirralle, jotta se voi jatkua. Esimerkiksi ennen puolipistettä, joka erottaa eri käskyt ohjelmointikielessä, jäsentäjä voi sulkea sulut, joita ei ole vielä suljettu. Tämä on monimutkaisempi suunnitella ja toteuttaa, mutta joissain tilanteissa se voi toimia huomattavasti paremmin kuin paniikkipalautuminen. Luonnollisesti tämä strategia on tehoton, jos todellinen virhe tapahtui ennen kuin jäsentäjä havaitsi virheen.
Yleisimpien virheiden tunteminen mahdollistaa kielen kieliopin laajentamisen virheellisiä konstruktioita luovilla tuotannoilla. Kun tällaiset tuotannot käynnistyvät, virhe kirjataan, mutta jäsentäjä jatkaa toimintaansa normaalisti.
Kääntäjien erilliset kehitys- ja rakentamisvaiheet voidaan automatisoida ja suorittaa tietokoneella.
Tässä on joitain tunnetuimmista analysaattoreiden kehitystyökaluista [2] :
Katso myös jäsennysgeneraattoreiden vertailu .