Syntaktický strom: Porovnání verzí

Smazaný obsah Přidaný obsah
mBez shrnutí editace
m Pravdivý může být celý podstrom
Řádek 9:
</dl>
]]
'''Abstraktní syntaktický strom''' (také syntaktický strom nebo syntaktický graf) je v [[Informatika|informatice]] stromovou reprezentací abstraktní [[Syntaktická analýza|syntaktické struktury]] zdrojového kódu napsaného v programovacím jazyce. Jeho vnitřními uzly jsou operátory a listy jsou operandy. Abstraktního syntaktického stromu se využívá primárně pro překlad a optimalizaci kódu. Jako příklad si můžeme představit strom, který reprezentuje booleovský výraz. V tomto stromu může překladač velmi pohodlně optimalizovat – např. pokud je jedenjedna listvětev disjunkce vždy pravdivýpravdivá, tak není třeba vyhodnocovat druhýdruhou větev. Syntaxe je abstraktní v tom smyslu, že nereprezentuje každý detail, který se vyskytuje v reálné syntaxi. Například seskupující závorky jsou ve stromové struktuře implicitní a syntaktické konstrukce jako if-podmínka-then mohou být označeny jediným uzlem se dvěma listyvětvemi.
 
To činí abstraktní syntaktické stromy odlišné od stromů konkrétních, které jsou tradičně označovány jako [[Derivační strom|derivační stromy]]. Ty jsou často tvořeny [[Parser|parserem]] jako součást překladu a kompilace zdrojového kódu. Již postavený syntaktický strom lze doplňovat o dodatečné informace následným zpracováním, například kontextovou analýzou.