Skirtumas tarp analizavimo iš viršaus į apačią ir iš apačios į viršų

Turinys:

Skirtumas tarp analizavimo iš viršaus į apačią ir iš apačios į viršų
Skirtumas tarp analizavimo iš viršaus į apačią ir iš apačios į viršų

Video: Skirtumas tarp analizavimo iš viršaus į apačią ir iš apačios į viršų

Video: Skirtumas tarp analizavimo iš viršaus į apačią ir iš apačios į viršų
Video: Difference in Top Down Parser and Bottom Up Parser 2024, Gruodis
Anonim

Pagrindinis skirtumas tarp analizavimo iš viršaus į apačią ir iš apačios į viršų yra tas, kad analizė iš viršaus į apačią atlieka analizę nuo žiūrėjimo simbolio iki įvesties eilutės, o iš apačios į apačią analizuoja nuo įvesties eilutės iki pradinio simbolio. Be to, dar vienas svarbus skirtumas tarp analizavimo iš viršaus į apačią ir iš apačios į viršų yra tas, kad analizuojant iš viršaus į apačią naudojamas kairysis išvedimas, o analizuojant iš apačios į apačią - dešinėje.

Aukšto lygio kalbos padeda rašyti kompiuterines programas. Juos lengviau suprasti programuotojui, bet ne kompiuteriui. Todėl aukšto lygio programa konvertuoja į mašininį kodą. Kompiliatoriaus užduotis yra konvertuoti žmogaus nuskaitomą š altinio kodą į mašininį kodą. Programa atlieka kelis veiksmus, kad konvertuotų į mašininį kodą. Visas šis procesas vadinamas kalbos apdorojimo sistema. Vienas iš jų yra kompiliacija. Sintaksės analizatorius arba analizatorius yra kompiliatoriuje ir atlieka analizavimo užduotį.

Kas yra analizavimas iš viršaus į apačią?

Kiekviena programavimo kalba turi taisyklių rinkinį, atspindintį kalbą. Sintaksės analizatorius arba analizatorius paima įvesties eilutę ir patikrina, ar ji atitinka gramatikos gaminius. Kitaip tariant, gramatika turi sukurti tą eilutę naudodama analizavimo medį.

Nagrinėjant iš viršaus į apačią, analizuojama nuo pradžios simbolio ir pasieks nurodytą įvesties eilutę. Apsvarstykite šias gramatikos gamybos taisykles. Įvesties eilutė (w) yra cad.

S -> cAd

A -> ab /a

Nagrinėjimo medis atlikus analizavimą iš viršaus į apačią yra toks.

Skirtumas tarp analizavimo iš viršaus į apačią ir iš apačios į viršų
Skirtumas tarp analizavimo iš viršaus į apačią ir iš apačios į viršų
Skirtumas tarp analizavimo iš viršaus į apačią ir iš apačios į viršų
Skirtumas tarp analizavimo iš viršaus į apačią ir iš apačios į viršų

01 pav. 1 medžio analizė su analize iš viršaus į apačią

S sukuria c A d, o A sukuria b. Styga yra cabd. Tai nėra būtina eilutė. Taigi, būtina grįžti atgal, ty naudoti kitas alternatyvas.

Panašiai S gamina c A d. Pritaikius kitą variantą A, gausite a. Dabar ji suteikia reikiamą eilutę. Todėl analizatorius priima šią įvesties eilutę. Atlikus analizę iš viršaus į apačią, analizės medis yra toks.

Skirtumas tarp analizavimo iš viršaus į apačią ir iš apačios į viršų_2 pav
Skirtumas tarp analizavimo iš viršaus į apačią ir iš apačios į viršų_2 pav
Skirtumas tarp analizavimo iš viršaus į apačią ir iš apačios į viršų_2 pav
Skirtumas tarp analizavimo iš viršaus į apačią ir iš apačios į viršų_2 pav

02 pav. 2 medžio analizė su analize iš viršaus į apačią

Kai įvesties eilutė (w) yra abbcde

Apsvarstykite šias gramatikos gamybos taisykles.

S -> aABe

A -> Abc/b

B -> d

Nagrinėjant iš viršaus į apačią, S -> aABe (pakeičiant A -> Abc)

S -> aAbcBe (pakeičiant A -> b)

S -> abbcBe (pakeičiantis B ->d)

S -> abbcde

Pakeitimas pirmiausia prasideda kairiuoju labiausiai kintamu, o tada į kitą dešinę padėtį ir pan. Todėl jis vadovaujasi kairėje pusėje esančiu išvedimo metodu. Be to, svarbu nuspręsti, kokią gamybos taisyklę pasirinkti, kai yra kintamasis.

Kas yra analizavimas iš apačios į viršų?

Iš apačios į viršų analizuojama kitu būdu. Analizuojama nuo įvesties eilutės iki pradžios simbolio. Atsižvelkite į šias gramatikos gamybos taisykles ir tegul įvesties eilutė yra w ɛ cad

S -> cAd

A -> ab /a

Nagrinėjimo medis po analizės iš apačios į viršų yra toks.

Pagrindinis skirtumas tarp analizavimo iš viršaus į apačią ir iš apačios į viršų_03 pav
Pagrindinis skirtumas tarp analizavimo iš viršaus į apačią ir iš apačios į viršų_03 pav
Pagrindinis skirtumas tarp analizavimo iš viršaus į apačią ir iš apačios į viršų_03 pav
Pagrindinis skirtumas tarp analizavimo iš viršaus į apačią ir iš apačios į viršų_03 pav

03 pav. Medžio analizė naudojant analizę iš apačios į viršų

Duota eilutė yra cad. A generuoja A. Sujungiami c, A ir d gaunamas pradžios simbolis S.

Kai įvesties eilutė (w) yra abbcde

Apsvarstykite šias gramatikos gamybos taisykles.

S -> aABe

A -> Abc/b

B -> d

Nagrinėjant iš apačios į viršų, S -> aABe (pakeičiamas B ->d)

S -> aAde (pakeičiant A -> Abc)

S -> aAbcde (pakeičiama A -> b)

S -> abbcde

Pakeitimas pirmiausia pradedamas dešiniuoju labiausiai kintamuoju, o tada pereina į kitą kairę padėtį ir pan. Todėl jis vadovaujasi kairiojo mot išvedimo metodu.

Kuo skiriasi analizavimas iš viršaus į apačią ir iš apačios į viršų?

Nagrinėjimas iš viršaus į apačią yra analizės strategija, kuri pirmiausia žiūri į aukščiausią analizavimo medžio lygį ir apdoroja analizavimo medį pagal formalios gramatikos taisykles. Nagrinėjimas iš apačios į viršų yra analizės strategija, kuri pirmiausia žiūri į žemiausią analizės medžio lygį ir apdoroja analizavimo medį pagal formaliosios gramatikos taisykles. Nagrinėjama nuo pradžios simbolio iki įvesties eilutės, analizuojant iš viršaus į apačią. Kita vertus, analizuojama nuo įvesties eilutės iki pradžios simbolio, analizuojant iš apačios į viršų.

Be to, pagrindinis sprendimas analizuojant iš viršaus į apačią yra pasirinkti, kokią gamybos taisyklę naudoti norint sukurti eilutę, o pagrindinis sprendimas analizuojant iš apačios į apačią yra pasirinkti, kada naudoti gamybos taisyklę, kad eilutė būtų sumažinta iki gauti pradžios simbolį. Be to, analizuojant iš viršaus į apačią naudojamas kairysis išvedimas, o iš apačios į apačią – dešinysis.

Skirtumas tarp analizės iš viršaus į apačią ir iš apačios į viršų lentelės forma
Skirtumas tarp analizės iš viršaus į apačią ir iš apačios į viršų lentelės forma
Skirtumas tarp analizės iš viršaus į apačią ir iš apačios į viršų lentelės forma
Skirtumas tarp analizės iš viršaus į apačią ir iš apačios į viršų lentelės forma

Santrauka – analizavimas iš viršaus į apačią ir iš apačios į viršų

Skirtumas tarp analizavimo iš viršaus į apačią ir iš apačios į viršų yra tas, kad iš viršaus į apačią analizuojama nuo žiūrėjimo simbolio iki įvesties eilutės, o iš apačios į apačią – nuo įvesties eilutės iki pradžios simbolio.

Rekomenduojamas: