სხვაობა ზემოდან ქვევით და ქვემოდან ზევით ანალიზს შორის

Სარჩევი:

სხვაობა ზემოდან ქვევით და ქვემოდან ზევით ანალიზს შორის
სხვაობა ზემოდან ქვევით და ქვემოდან ზევით ანალიზს შორის

ვიდეო: სხვაობა ზემოდან ქვევით და ქვემოდან ზევით ანალიზს შორის

ვიდეო: სხვაობა ზემოდან ქვევით და ქვემოდან ზევით ანალიზს შორის
ვიდეო: ჯენიფერ გეიზი - "უკიდურესი სიმაღლე" - აუდიო წიგნი 2024, ივლისი
Anonim

ძირითადი განსხვავება ზემოდან ქვევით და ქვემოდან ზევით ანალიზს შორის არის ის, რომ ზემოდან ქვევით ანალიზს ახორციელებს ანალიზს თვალისმომჭრელი სიმბოლოდან შეყვანის სტრიქონამდე, ხოლო ქვედა ქვემოთ ანალიზს ასრულებს შეყვანის სტრიქონიდან საწყის სიმბოლომდე. გარდა ამისა, კიდევ ერთი მნიშვნელოვანი განსხვავება ზემოდან ქვევით და ქვემოდან ზევით ანალიზს შორის არის ის, რომ ზემოდან ქვევით პარსინგი იყენებს ყველაზე მარცხნივ წარმოქმნას, ხოლო ქვემოდან ქვემოთ პარსინგი იყენებს ყველაზე მარჯვენას.

მაღალი დონის ენები ეხმარება კომპიუტერული პროგრამების დაწერას. მათი გაგება უფრო ადვილია პროგრამისტისთვის, მაგრამ არა კომპიუტერის მიერ. ამიტომ, მაღალი დონის პროგრამა გარდაიქმნება მანქანის კოდში.შემდგენელის ამოცანაა ადამიანის წაკითხვადი წყაროს კოდის მანქანით წაკითხვადი მანქანის კოდის გადაქცევა. პროგრამა გადის რამდენიმე საფეხურს მანქანის კოდში გადასაყვანად. მთელ ამ პროცესს ენის დამუშავების სისტემა ეწოდება. ერთ-ერთი მათგანია კომპილაცია. სინტაქსის ანალიზატორი ან პარსერი არის შემდგენელში და ის ასრულებს ანალიზს.

რა არის ზემოდან ქვემოთ ანალიზი?

ყველა პროგრამირების ენას აქვს წესების ნაკრები ენის წარმოსაჩენად. სინტაქსის ანალიზატორი ან ანალიზატორი იღებს შეყვანის სტრიქონს და ამოწმებს არის თუ არა ის გრამატიკული ნაწარმოებების მიხედვით. სხვა სიტყვებით რომ ვთქვათ, გრამატიკამ უნდა აწარმოოს ეს სტრიქონი ანალიზის ხის გამოყენებით.

ზემოდან ქვემოთ ანალიზში, ანალიზები ხდება საწყისი სიმბოლოდან და მიაღწევს მოცემულ შეყვანის სტრიქონს. განვიხილოთ გრამატიკის წარმოების შემდეგი წესები. შეყვანის სტრიქონი (w) არის cad.

S -> cAd

A -> ab /a

გარჩევის ხე ზემოდან ქვემოთ ანალიზების შესრულების შემდეგ არის შემდეგი.

განსხვავება ზემოდან ქვევით და ქვემოდან ზევით ანალიზს შორის
განსხვავება ზემოდან ქვევით და ქვემოდან ზევით ანალიზს შორის
განსხვავება ზემოდან ქვევით და ქვემოდან ზევით ანალიზს შორის
განსხვავება ზემოდან ქვევით და ქვემოდან ზევით ანალიზს შორის

სურათი 01: ხე 1 გაანალიზება ზემოდან ქვევით გაანალიზებით

S აწარმოებს c A d-ს და A აწარმოებს a-ს. სტრიქონი არის cabd. ეს არ არის საჭირო სტრიქონი. ასე რომ, აუცილებელია უკან დახევის გაკეთება, რაც არის სხვა ალტერნატივების გამოყენება.

ასევე, S აწარმოებს c A d. A-სთვის სხვა ვარიანტის გამოყენება მისცემს a-ს. ახლა ის იძლევა საჭირო სტრიქონს. ამიტომ, პარსერი იღებს ამ შეყვანის სტრიქონს. გარჩევის ხე ზემოდან ქვემოთ ანალიზების შესრულების შემდეგ არის შემდეგი.

განსხვავება ზემოდან ქვევით და ქვემოდან ზევით ანალიზს შორის_ნახ 2
განსხვავება ზემოდან ქვევით და ქვემოდან ზევით ანალიზს შორის_ნახ 2
განსხვავება ზემოდან ქვევით და ქვემოდან ზევით ანალიზს შორის_ნახ 2
განსხვავება ზემოდან ქვევით და ქვემოდან ზევით ანალიზს შორის_ნახ 2

სურათი 02: ხე 2 გაანალიზება ზემოდან ქვევით გარჩევით

როდესაც შეყვანის სტრიქონი (w) არის abbcde

გაითვალისწინეთ გრამატიკის წარმოების შემდეგი წესები.

S -> aABe

A -> Abc/b

B -> d

ზემოდან ქვემოთ გაანალიზება, S -> aABe (ჩანაცვლება A -> Abc)

S -> aAbcBe (ჩანაცვლება A -> ბ)

S -> abbcBe (ჩანაცვლება B ->d)

S -> abbcde

ჩანაცვლება იწყება ჯერ მარცხენა ყველაზე ცვლადით და შემდეგ შემდეგ მარჯვენა პოზიციამდე და ასე შემდეგ. მაშასადამე, ის მიჰყვება მარცხნივ უმეტესად გამოყვანის მეთოდს. გარდა ამისა, მნიშვნელოვანია გადაწყვიტოთ წარმოების რა წესი უნდა აირჩიოთ, როდესაც არსებობს ცვლადი.

რა არის ქვედა ზევით ანალიზები?

ქვემოდან ზევით ანალიზი ხდება სხვა გზით. ანალიზი ხდება შეყვანის სტრიქონიდან საწყის სიმბოლომდე. გაითვალისწინეთ შემდეგი გრამატიკული წარმოების წესები და მიეცით შეყვანის სტრიქონი w ɛ cad

S -> cAd

A -> ab /a

გარჩევის ხე ქვემოდან ზევით ანალიზების შესრულების შემდეგ არის შემდეგი.

ძირითადი განსხვავება ზემოდან ქვევით და ქვემოდან ზევით ანალიზს შორის_ნახ 03
ძირითადი განსხვავება ზემოდან ქვევით და ქვემოდან ზევით ანალიზს შორის_ნახ 03
ძირითადი განსხვავება ზემოდან ქვევით და ქვემოდან ზევით ანალიზს შორის_ნახ 03
ძირითადი განსხვავება ზემოდან ქვევით და ქვემოდან ზევით ანალიზს შორის_ნახ 03

სურათი 03: ხის გაანალიზება ქვემოდან ზევით გარჩევით

მოცემული სტრიქონი არის cad. a გენერირდება A-ს მიერ. c, A და d გაერთიანებულია საწყისი სიმბოლოს S-ის მისაღებად.

როდესაც შეყვანის სტრიქონი (w) არის abbcde

გაითვალისწინეთ გრამატიკის წარმოების შემდეგი წესები.

S -> aABe

A -> Abc/b

B -> d

ქვემოდან ზევით ანალიზში, S -> aABe (ჩანაცვლება B ->d)

S -> aAde (ჩანაცვლება A -> Abc)

S -> aAbcde (ჩანაცვლება A -> ბ)

S -> abbcde

ჩანაცვლება იწყება ჯერ ყველაზე მარჯვენა ცვლადით და შემდეგ გადადის შემდეგ მარცხენა პოზიციაზე და ასე შემდეგ. მაშასადამე, ის მიჰყვება მარცხნივ მოტით წარმოქმნის მეთოდს.

რა განსხვავებაა ზემოდან ქვევით და ქვემოდან ზევით ანალიზს შორის?

ზემოდან ქვემოდან პარსირება არის ანალიზების სტრატეგია, რომელიც პირველ რიგში ათვალიერებს ანალიზის ხის უმაღლეს დონეს და ამუშავებს ანალიზის ხეს ფორმალური გრამატიკის წესების გამოყენებით. ქვემოდან ზევით გარჩევა არის ანალიზების სტრატეგია, რომელიც ჯერ ათვალიერებს გარჩევის ხის ყველაზე დაბალ დონეს და ამუშავებს გაანალიზების ხეს ფორმალური გრამატიკის წესების გამოყენებით.ანალიზი ხდება საწყისი სიმბოლოდან შეყვანის სტრიქონამდე, ზემოდან ქვემოთ. მეორეს მხრივ, პარსირება ხდება შეყვანის სტრიქონიდან საწყის სიმბოლომდე, ქვემოდან ზემოთ.

გარდა ამისა, მთავარი გადაწყვეტილება ზემოდან ქვევით ანალიზისას არის არჩევა, თუ რა წარმოების წესი გამოიყენოს სტრიქონის ასაგებად, ხოლო ქვედა ქვევით ანალიზში მთავარი გადაწყვეტილება არის არჩევა, როდის გამოვიყენოთ წარმოების წესი სტრიქონის შესამცირებლად. მიიღეთ საწყისი სიმბოლო. უფრო მეტიც, ზემოდან ქვევით პარსინგი იყენებს ყველაზე მარცხნივ წარმოქმნას, ხოლო ქვედა ქვევით ანალიზს იყენებს ყველაზე მეტად მარჯვენას.

განსხვავება ზემოდან ქვევით და ქვემოდან ზევით ანალიზს შორის ცხრილის სახით
განსხვავება ზემოდან ქვევით და ქვემოდან ზევით ანალიზს შორის ცხრილის სახით
განსხვავება ზემოდან ქვევით და ქვემოდან ზევით ანალიზს შორის ცხრილის სახით
განსხვავება ზემოდან ქვევით და ქვემოდან ზევით ანალიზს შორის ცხრილის სახით

რეზიუმე – ზემოდან ქვევით წინააღმდეგ ქვემოდან ზევით ანალიზებით

სხვაობა ზემოდან ქვევით და ქვემოდან ზევით ანალიზს შორის არის ის, რომ ზემოდან ქვევით ანალიზს ახორციელებს ანალიზს თვალისმომჭრელი სიმბოლოდან შეყვანის სტრიქონამდე, ხოლო ქვედა ქვემოდან შეყვანის სტრიქონიდან საწყის სიმბოლომდე.

გირჩევთ: