Apstraktno sintaksno stablo: razlika između inačica

Izbrisani sadržaj Dodani sadržaj
Addbot (razgovor | doprinosi)
m Bot: brisanje 14 međuwiki poveznica premještenih u stranicu d:q127380 na Wikidati
m RpA: WP:NI, WP:HRV
 
Redak 1:
U [[računarstvo|računarstvu]], '''apstraktno sintaksno stablo''' (još i '''stablo sažete sintakse''',<ref name="InfoRjecnik">Kiš Miroslav, ''Englesko-hrvatski i hrvatsko-engleski informatički rječnik'', Zagreb, Naklada Ljevak, 2000., str. 8</ref>, obično kraćeno kao AST - od [[engleski jezik|engl.]] ''Abstract Syntax Tree'') je konačno labelirano usmjereno stablo čiji su unutrašnji čvorovi labelirani [[operator]]ima, pri čemu listovi predstavljaju [[operand]]e operatora. Slijedi da su listovi NULL operatori i predstavljaju samo varijable i konstante. U računarstvu, ovo se stablo koristi u [[parser]]ima kao međuprikaz između [[stablo parsiranja|stabla parsiranja]] i [[podatkovna struktura|podatkovne strukture]] koja se često koristi u internom predstavljanju [[računalni program|računalnog programa]] u [[jezični procesor|jezičnim procesorima]] još dok se on optimizira tokom prevođenja netom prije generiranja koda. Skup svih takvih podatkovnih struktura opisuje [[apstraktna sintaksa]].
 
AST se razlikuje od stabla parsiranja tako što miče čvorove i bridove za sintaksna pravila koja ne utječu na [[semantika|semantiku]] programa. Klasičan je primjer micanje zagrada za grupiranje, s obzirom na to da je u AST-u grupiranje operanada implicitno u hijerarhijskoj, stablastoj strukturi.
 
Kreiranje AST-a prilikom parsiranja jezika opisanog [[kontekstno neovisna gramatika|kontekstno neovisnom gramatikom]] je u gotovo svim programskim jezicima izuzetno jednostavno. Većina produkcija gramatike kreira novi čvor čiji su bridovi [[završni i nezavršni znakovi|znakovi]] produkcije. Produkcije koje se ne koriste pri gradnji AST-a, poput produkcija koje definiraju prednost operatora grupiranjem izraza, samo prolaze kroz čvor kao jedni od znakova. Alternativno, parser može kreirati potpuno stablo parsiranja, te naknadno preći preko njega pretvarajući ga u AST micanjem čvorova i bridova koji se ne koriste u apstraktnoj sintaksi.