Syntaktický strom: Porovnání verzí

Smazaný obsah Přidaný obsah
Nová stránka: [[File:syntakticky strom.jpg|thumb|400px|Abstraktní syntaktický strom pro následující kód Euklidovského algoritmu:<br/> <dl> <dd>'''while''' b ≠ 0<dl> <dd>'''if''' a > b<dl>...
 
Bez shrnutí editace
Řá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. KaždýJeho uzelvnitřními stromuuzly naznačujejsou konstrukcioperátory vyskytujícía listy jsou operandy. Abstraktního syntaktického stromu se vevyužívá zdrojovémprimá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 jedna větev disjunkce vždy pravdivá, tak není třeba vyhodnocovat 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 vě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.