klíčový rozdíl mezi analýzou shora dolů a zdola nahoru je to vzhůru nohama parsování provádí parsování z hledícího symbolu na vstupní řetězec, zatímco parsování dolů provádí parsování od vstupního řetězce k počátečnímu symbolu. Dále je dalším důležitým rozdílem mezi analýzou shora dolů a dolů nahoru, že analýza shora dolů používá derivaci nejvíce vlevo a analýza dolů dolů používá nejvíce derivaci..
Jazyky na vysoké úrovni pomáhají psát počítačové programy. Jsou snáze pochopitelné programátorem, ale nikoli počítačem. Program na vysoké úrovni se proto převede na strojový kód. Úkolem kompilátoru je převést lidský čitelný zdrojový kód na strojově čitelný strojový kód. Program prochází několika kroky k převodu na strojový kód. Celý tento proces se nazývá Systém zpracování jazyků. Jedním z nich je kompilace. Analyzátor syntaxe nebo syntaktický analyzátor je v kompilátoru a provádí úlohu analýzy.
1. Přehled a klíčový rozdíl
2. Co je to analýza shora dolů
3. Co je analýza zdola nahoru
4. Porovnání bok po boku - seshora dolů vs analýze zdola nahoru v tabulkové formě
5. Shrnutí
Každý programovací jazyk má sadu pravidel reprezentujících daný jazyk. Analyzátor syntaxe nebo analýza vezme vstupní řetězec a zkontroluje, zda je podle gramatických výrob. Jinými slovy, gramatika by měla vytvořit tento řetězec pomocí stromu analýzy.
Při analýze shora dolů dochází k analýze podle počátečního symbolu a dosáhne zadaného vstupního řetězce. Zvažte následující pravidla výroby gramatiky. Vstupní řetězec (w) je cad.
S -> cAd
A -> ab / a
Strom analýzy po provedení analýzy shora dolů je následující.
Obrázek 01: Parsový strom 1 s analýzou shora dolů
S produkuje c A d a A produkuje b. Řetězec je cabd. Není to požadovaný řetězec. Je tedy nutné provést zpětné sledování, což znamená použít jiné alternativy.
Podobně S produkuje c A d. Použití jiné možnosti pro A dá a. Nyní poskytuje požadovaný řetězec. Analyzátor proto přijímá tento vstupní řetězec. Strom analýzy po provedení analýzy shora dolů je následující.
Obrázek 02: Parsový strom 2 s analýzou shora dolů
Zvažte následující pravidla výroby gramatiky.
S -> aABe
A -> Abc / b
B -> d
V analýze shora dolů,
S -> aABe (Náhrada A -> Abc)
S -> aAbcBe (Náhrada A -> b)
S -> abbcBe (Náhrada B -> d)
S -> abbcde
Substituce začíná nejdříve levou proměnnou a poté na další pravou pozici atd. Proto se řídí metodou odvození nejvíce vlevo. Dále je důležité rozhodnout, jaké výrobní pravidlo zvolit, pokud existuje proměnná.
V analýze zdola nahoru dochází k analýze jiným způsobem. K analýze dochází od vstupního řetězce po počáteční symbol. Zvažte následující pravidla produkce gramatiky a nechte vstupní řetězec w ɛ cad
S -> cAd
A -> ab / a
Strom analýzy po provedení analýzy zdola nahoru je následující.
Obrázek 03: Analyzovat strom s analýzou zdola nahoru
Zadaný řetězec je cad. A je generováno A. Kombinace c, A a d získají počáteční symbol S.
Zvažte následující pravidla výroby gramatiky.
S -> aABe
A -> Abc / b
B -> d
V analýze zdola nahoru,
S -> aABe (Náhrada B -> d)
S -> aAde (Náhrada A -> Abc)
S -> aAbcde (Náhrada A -> b)
S -> abbcde
Substituce začíná nejdříve tou nejobvyklejší proměnnou a poté se přesune na další levou pozici atd. Proto se řídí metodou derivace vlevo.
Parsování shora dolů je syntaktická analýza, která se nejprve podívá na nejvyšší úroveň stromu analýzy a analyzuje strom analýzy pomocí pravidel formální gramatiky. Analýza zdola nahoru je syntaktická analýza, která se nejprve dívá na nejnižší úroveň stromu analýzy a zpracovává strom analýzy pomocí pravidel formální gramatiky. K analýze dochází od počátečního symbolu po vstupní řetězec, při analýze shora dolů. Na druhou stranu k analýze dochází od vstupního řetězce k počátečnímu symbolu, při analýze zdola nahoru.
Kromě toho hlavním rozhodnutím při analýze shora dolů je vybrat, jaké výrobní pravidlo použít, aby se vytvořil řetězec, zatímco hlavním rozhodnutím při analýze dolů dolů je vybrat, kdy použít výrobní pravidlo ke snížení řetězce, aby se získal počáteční symbol. Navíc analýza shora dolů používá většinu odvození a analýza dolů dolů používá nejvíce odvození.
Rozdíl mezi parsování shora dolů a dolů nahoru je ten, že parsování shora dolů provádí analýzu od hledícího symbolu k vstupnímu řetězci, zatímco parsování dolů provádí analýzu od vstupního řetězce k počátečnímu symbolu..
1. „Přednáška o návrhu kompilátoru 5 - Úvod do Parsers a LL (1) Parsing.“ Přednáška kompilátoru 5 - Úvod do analyzátorů a LL (1) analýzy, Přednášky brány od Ravindrababu Ravula, 22. května 2014. K dispozici zde