Rozdíl mezi analýzou shora dolů a zdola nahoru

Obsah:

Rozdíl mezi analýzou shora dolů a zdola nahoru
Rozdíl mezi analýzou shora dolů a zdola nahoru

Video: Rozdíl mezi analýzou shora dolů a zdola nahoru

Video: Rozdíl mezi analýzou shora dolů a zdola nahoru
Video: What is Top down and Bottom up approach while investing? (Animated) | Fundamental Analysis 2024, Listopad
Anonim

Klíčový rozdíl mezi analýzou shora dolů a zdola nahoru je v tom, že analýza shora dolů provádí analýzu od počátečního symbolu ke vstupnímu řetězci, zatímco analýza zdola dolů provádí analýzu od vstupního řetězce k počátečnímu symbolu. Dalším důležitým rozdílem mezi analýzou shora dolů a zdola nahoru je navíc to, že analýza shora dolů používá derivaci nejvíce zleva a analýza zdola dolů používá derivaci nejvíce vpravo.

Jazyky na vysoké úrovni pomáhají psát počítačové programy. Jsou snadněji pochopitelné pro programátora, ale ne pro počítač. Proto se program na vysoké úrovni převede na strojový kód. Úkolem kompilátoru je převést lidsky čitelný zdrojový kód na strojově čitelný strojový kód. Program prochází několika kroky, než se převede na strojový kód. Celý tento proces se nazývá Language processing System. Jedním z nich je kompilace. Analyzátor syntaxe nebo analyzátor je v kompilátoru a provádí úlohu analýzy.

Co je analýza shora dolů?

Každý programovací jazyk má sadu pravidel pro reprezentaci jazyka. Analyzátor syntaxe nebo parse vezme vstupní řetězec a zkontroluje, zda je v souladu s gramatikou. Jinými slovy, gramatika by měla vytvořit tento řetězec pomocí stromu analýzy.

Při analýze shora dolů se analýza provádí od počátečního symbolu a dosáhne zadaného vstupního řetězce. Zvažte následující pravidla tvorby gramatiky. Vstupní řetězec (w) je cad.

S -> cAd

A -> ab /a

Strom analýzy po provedení analýzy shora dolů vypadá následovně.

Rozdíl mezi analýzou shora dolů a zdola nahoru
Rozdíl mezi analýzou shora dolů a zdola nahoru
Rozdíl mezi analýzou shora dolů a zdola nahoru
Rozdíl mezi analýzou shora dolů a zdola nahoru

Obrázek 01: Analýza stromu 1 s analýzou shora dolů

S produkuje c A d a A vytváří a b. Řetězec je cabd. Není to požadovaný řetězec. Takže je nutné udělat backtracking, což je použití jiných alternativ.

Podobně S produkuje c A d. Použití druhé možnosti pro A dá a. Nyní dává požadovaný řetězec. Proto analyzátor přijímá tento vstupní řetězec. Strom analýzy po provedení analýzy shora dolů je následující.

Rozdíl mezi analýzou shora dolů a zdola nahoru_obr 2
Rozdíl mezi analýzou shora dolů a zdola nahoru_obr 2
Rozdíl mezi analýzou shora dolů a zdola nahoru_obr 2
Rozdíl mezi analýzou shora dolů a zdola nahoru_obr 2

Obrázek 02: Analýza stromu 2 s analýzou shora dolů

Když je vstupní řetězec (w) abbcde

Zvažte následující pravidla tvorby gramatiky.

S -> aABe

A -> Abc/b

B -> d

Při analýze shora dolů

S -> aABe (nahrazuje A -> Abc)

S -> aAbcBe (nahrazuje A -> b)

S -> abbcBe (nahrazuje B ->d)

S -> abbcde

Substituce začíná nejprve od levé nejproměnnější a poté na další pravou pozici a tak dále. Proto se řídí metodou odvození nejvíce vlevo. Kromě toho je důležité rozhodnout, jaké produkční pravidlo zvolit, když existuje proměnná.

Co je analýza zdola nahoru?

Při analýze zdola nahoru probíhá analýza jiným způsobem. Analýza probíhá od vstupního řetězce po počáteční symbol. Zvažte následující pravidla tvorby gramatiky a nechejte vstupní řetězec w ɛ cad

S -> cAd

A -> ab /a

Strom analýzy po provedení analýzy zdola nahoru je následující.

Klíčový rozdíl mezi analýzou shora dolů a zdola nahoru_obr 03
Klíčový rozdíl mezi analýzou shora dolů a zdola nahoru_obr 03
Klíčový rozdíl mezi analýzou shora dolů a zdola nahoru_obr 03
Klíčový rozdíl mezi analýzou shora dolů a zdola nahoru_obr 03

Obrázek 03: Analýza stromu s analýzou zdola nahoru

Daný řetězec je cad. A je generováno A. Kombinací c, A a d vznikne počáteční symbol S.

Když je vstupní řetězec (w) abbcde

Zvažte následující pravidla tvorby gramatiky.

S -> aABe

A -> Abc/b

B -> d

Při analýze zdola nahoru

S -> aABe (nahrazuje B ->d)

S -> aAde (Nahrazuje A -> Abc)

S -> aAbcde (náhrada A -> b)

S -> abbcde

Substituce začíná nejprve pravou nejvíce proměnnou a poté se přesune na další levou pozici a tak dále. Proto se řídí metodou odvození levého motu.

Jaký je rozdíl mezi analýzou shora dolů a zdola nahoru?

Analyzovat shora dolů je strategie analýzy, která se nejprve podívá na nejvyšší úroveň stromu analýzy a poté na strom analýzy pomocí pravidel formální gramatiky. Analýza zdola nahoru je strategie analýzy, která se nejprve podívá na nejnižší úroveň stromu analýzy a zpracovává strom analýzy pomocí pravidel formální gramatiky. Analýza probíhá 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.

Dále je hlavním rozhodnutím při analýze shora dolů vybrat, jaké produkční pravidlo použít k sestavení řetězce, zatímco hlavním rozhodnutím při analýze zdola dolů je vybrat, kdy použít produkční pravidlo k redukci řetězce na získat počáteční symbol. Navíc analýza shora dolů používá derivaci nejvíce zleva a analýza zdola dolů používá většinu derivace vpravo.

Rozdíl mezi analýzou shora dolů a zdola nahoru v tabulkové formě
Rozdíl mezi analýzou shora dolů a zdola nahoru v tabulkové formě
Rozdíl mezi analýzou shora dolů a zdola nahoru v tabulkové formě
Rozdíl mezi analýzou shora dolů a zdola nahoru v tabulkové formě

Shrnutí – analýza shora dolů vs. analýza zdola nahoru

Rozdíl mezi analýzou shora dolů a zdola nahoru je v tom, že analýza shora dolů provádí analýzu od počátečního symbolu po vstupní řetězec, zatímco analýza zdola dolů provádí analýzu od vstupního řetězce po počáteční symbol.

Doporučuje: