Raščlanjivanje
From Wikipedia, the free encyclopedia
U računarstvu i lingvistici, raščlanjivanje (parsiranje, formalnije: sintaksna analiza) je postupak analiziranja niza tokena radi utvrđivanja gramatičke strukture u odnosu na datu (više ili manje) formalnu gramatiku. Dakle, raščlanjivač je jedan od delova interpretatora ili kompilatora, u kojoj se prihvata podrazumevana hijerarhija ulaznog teksta i pretvara u oblik koji je pogodan za dalju obradu (najčešće u neki oblik stabla raščlanjivanja, apstraktnog sintaksnog stabla ili neke druge hijerarhijske strukture), pritom obično proveravajući i eventualne greške u sintaksi. Raščlanjivač često koristi poseban leksički analizator za izdvajanje tokena iz niza ulaznih znakova. Raščlanjivači mogu biti programirani ručno ili stvoreni poluautomatski (u nekom programskom jeziku) upotrebom programskih alata (poput a) polazeći od gramatike u Bekus-Naurovoj formi.
Pored toga, raščlanjivači mogu biti konstruisani i kao izvršne specifikacije gramatika u funkcionalnim programskim jezicima. Frost, Hafiz i Kalahan (eng. ) su na osnovu radova drugih napravili skup funkcija višeg reda (nazvani raščlanjivački kombinatori) koji omogućavaju konstrukciju raščlanjivača za analizu naniže, polinomijalne vremenske i prostorne složenosti, kao izvršne specifikacije za višeznačne gramatike koje sadrže levo-rekurzivna pravila. Na sajtu može se naći više pojedinosti o algoritmima i detaljima ugrađivanja.