Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
KAPITOLA 4. BEZKONTEXTOVÉ JAZYKY A ZÁSOBNÍKOVÉ AUTOMATY63<br />
Obrázek 4.10: Syntaktická analýza shora dolů<br />
je A nejlevějším nonterminálem, který má být přepsán. Dále předpokládejme, že<br />
gramatika obsahuje n pravidel s levou stranou A:<br />
A → α 1 | α 2 | . . . | α n<br />
Jak poznáme, kterým řetězcem α i je třeba nahradit nonterminál A? Podobně při<br />
Obrázek 4.11: Syntaktická analýza zdola nahoru<br />
analýze zdola nahoru, kdy je v každém kroku redukována l-fráze větné formy,<br />
spočívá hlavní problém v určení začátku a konce l-fráze.<br />
Jedním z řešení těchto problémů je náhodný výběr některé z možných alternativ.<br />
Ukáže-li se později, že zvolená alternativa nebyla správná, je třeba proces rozkladu<br />
„vrátit“ a uvažovat jinou alternativu. (Při syntaktické analýze shora dolů se<br />
například pokoušíme přepisovat A řetězci α 1 , α 2 . . . tak, aby se prefix získané levé<br />
derivace, který obsahuje pouze terminální symboly, shodoval s prefixem analyzované<br />
věty). Tento typ analýzy se nazývá syntaktická analýza s návratem (Syntax<br />
analysis with backup). I když počet návratů je omezený, je patrné, že analýza<br />
s návratem je časově náročná. Kromě toho jsou návraty zdrojem komplikací při<br />
sémantickém vyhodnocování překládaného programu.<br />
Praktickým řešením problémů syntaktické analýzy programovacích jazyků jsou<br />
tzv. deterministické gramatiky (kapitola 6.), které umožňují na základě kontextu