pagrindinis skirtumas analizuojant iš viršaus į apačią ir iš apačios į viršų, yra tai, kad iš viršaus į apačią analizuodami analizuoja žvaigždutę iš įvesties eilutės, o analizuodami apačią žemyn analizuojate iš įvesties eilutės į pradinį simbolį.. Be to, dar vienas svarbus skirtumas tarp analizės iš viršaus į apačią ir iš apačios į viršų yra tas, kad analizuojant iš viršaus į apačią naudojama dauguma kairės išvestinių, o iš apačios į apačią - išanalizuota dešinė dauguma..
Aukšto lygio kalbos padeda rašyti kompiuterines programas. Programuotojas jas supranta lengviau, bet ne kompiuteris. Todėl aukšto lygio programa virsta mašinos kodu. Kompiliatoriaus užduotis yra konvertuoti žmogaus skaitomą šaltinio kodą į mašininiu skaitomu kompiuterio kodu. Programa pereina kelis veiksmus, kad konvertuotų į kompiuterio kodą. Visas šis procesas vadinamas kalbos apdorojimo sistema. Vienas iš jų yra kompiliacija. Sintaksės analizatorius arba analizatorius yra kompiliatoriuje, ir jis atlieka analizės užduotį.
1. Apžvalga ir svarbiausias skirtumas
2. Kas yra analizė iš viršaus į apačią
3. Kas yra analizė iš apačios į viršų
4. Lyginimas iš šono - lentelės formos „iš viršaus į apačią“ ir „iš apačios į viršų“ analizė
5. Santrauka
Kiekviena programavimo kalba turi rinkinį taisyklių, kaip pavaizduoti kalbą. Sintaksės analizatorius arba analizė imasi įvesties eilutės ir patikrina, ar ji atitinka gramatikos kūrinius. Kitaip tariant, gramatika turėtų sudaryti šią eilutę naudodama parsiduodantį medį.
Analizuojant iš viršaus į apačią, analizuojama nuo pradinio simbolio ir pasieks nurodytą įvesties eilutę. Apsvarstykite šias gramatikos sudarymo taisykles. Įvesties eilutė (w) yra cad.
S -> cAd
A -> ab / a
Atsparus medis atlikus analizę iš viršaus į apačią yra toks.
01 paveikslas: Parsisiųskite 1 medį, analizuodami iš viršaus į apačią
S sukuria c A d, o A sukuria b. Styga yra kabinta. Tai nėra būtina eilutė. Taigi, būtina atlikti atgalinį darbą, tai yra naudoti kitas alternatyvas.
Panašiai S sukuria c A d. Taikydami kitą variantą A gausite. Dabar ji suteikia reikiamą eilutę. Todėl analizatorius priima šią įvesties eilutę. Atsparus medis atlikus analizę iš viršaus į apačią yra toks.
02 paveikslas: Parsisiųskite medį 2, analizuodami iš viršaus į apačią
Apsvarstykite šias gramatikos sudarymo taisykles.
S -> aABe
A -> Abc / b
B -> d
Parsisiųsti iš viršaus į apačią,
S -> aABe (pakeičiantys A -> Abc)
S -> aAbcBe (pakeičiantys A -> b)
S -> abbcBe (Pakaitalas B -> d)
S -> abbcde
Pakeitimas prasideda pirmiausia kintama kairiąja puse, tada - į kitą dešinę padėtį ir pan. Todėl vadovaujamasi kairiosios dalies išvesties metodu. Be to, svarbu nuspręsti, kokią gamybos taisyklę pasirinkti, kai yra kintamasis.
Analizavimas iš apačios į viršų vyksta kitu būdu. Analizavimas vyksta nuo įvesties eilutės iki pradinio simbolio. Apsvarstykite šias gramatikos sudarymo taisykles ir leiskite įvesties eilutei būti cad
S -> cAd
A -> ab / a
Atliekant analizę iš apačios į viršų, medis yra toks.
03 paveikslas: Parsisiųskite medį analizuodami apačią į viršų
Duota eilutė yra cad. A sukuria A. C, A ir d jungiasi, kad gautų pradinį simbolį S.
Apsvarstykite šias gramatikos sudarymo taisykles.
S -> aABe
A -> Abc / b
B -> d
Parsisiųsti iš apačios į viršų,
S -> aABe (Pakeičia B -> d)
S -> AAde (pakeičiant A -> Abc)
S -> aAbcde (pakaitalas A -> b)
S -> abbcde
Pakeitimas pirmiausia prasideda dešine, labiausiai kintama, tada pereina į kitą kairę padėtį ir pan. Todėl laikomasi kairiosios motinos išvesties metodo.
Analizavimas „iš viršaus į apačią“ yra strategija, pagal kurią pirmiausia žvelgiama į aukščiausią analizės medžio lygį ir, atsižvelgiant į oficialios gramatikos taisykles, atliekamas žeminamasis analizės medis. Analizavimas „iš apačios į viršų“ yra analizės strategija, kuri pirmiausia pažvelgia į žemiausią analizės medžio lygį ir parengia analizės medį, naudojant oficialios gramatikos taisykles. Analizavimas pradedamas nuo pradžios simbolio iki įvesties eilutės, analizuojant iš viršaus į apačią. Kita vertus, analizuojama iš įvesties eilutės į pradinį simbolį, analizuojant iš apačios į viršų.
Be to, pagrindinis sprendimas analizuojant iš viršaus į apačią yra pasirinkti, kokią gamybos taisyklę naudoti norint sukonstruoti eilutę, o pagrindinis sprendimas analizuojant iš apačios į apačią yra pasirinkti, kada naudoti gamybos taisyklę, norint sumažinti eilutę, kad būtų gautas pradinis simbolis. Be to, analizuojant iš viršaus į apačią naudojama išvestinė kairėje, o iš apačios - išvestinės dešinėje.
Skirtumas tarp analizės „iš viršaus į apačią“ ir „iš apačios į viršų“ yra tas, kad „iš viršaus į apačią“ analizuojama nuo žvaigždės simbolio iki įvesties eilutės, o „iš apačios“ analizuojama iš įvesties eilutės į pradinį simbolį..
1. „Kompiliatoriaus projektavimo 5 paskaita - įvadas į analizatorius ir LL (1) analizę“. Kompiliatoriaus projektavimo 5 paskaita - įvadas į analizatorius ir LL (1) analizė, „Ravindrababu Ravula“ paskaitos vartuose 2014 m. Gegužės 22 d. Galima rasti čia