Разлика между парнирането отгоре надолу и отдолу нагоре

Най- ключова разлика между отгоре надолу и отдолу нагоре анализа е, че отгоре надолу парсингът извършва синтактичния анализ от символа на взиращия към входния низ, докато анализа отдолу надолу извършва анализа от входния низ до началния символ. Освен това, друга важна разлика между синтаксичния анализ отгоре надолу и отдолу нагоре е, че разборът отгоре надолу използва най-лявата деривация и анализа отдолу надолу използва най-дясното деривация.

Езиците на високо ниво помагат за писане на компютърни програми. Те са по-лесни за разбиране от програмиста, но не и от компютъра. Следователно програмата на високо ниво се преобразува в машинен код. Задачата на компилатора е да преобразува човешки четим изходен код в машинно четим машинен код. Една програма преминава през няколко стъпки за конвертиране в машинен код. Целият този процес се нарича Система за обработка на езици. Едно от тях е компилацията. Синтаксисният анализатор или анализаторът е в компилатора и той изпълнява задачата за анализ.

СЪДЪРЖАНИЕ

1. Преглед и ключова разлика
2. Какво е отгоре надолу Parsing
3. Какво е отварянето отдолу нагоре
4. Паралелно сравнение - отгоре надолу срещу дъното нагоре в табличен вид
5. Обобщение

Какво е отгоре надолу Parsing?

Всеки език за програмиране има набор от правила за представяне на езика. Синтаксисният анализатор или синтактичният анализ взема входния низ и проверява дали е според граматичните произведения. С други думи, граматиката трябва да произведе този низ, използвайки дърво на разбор.

При синтактичен анализ отгоре надолу синтактичният анализ се извършва от стартовия символ и ще достигне дадения входен низ. Помислете за следните правила за производство на граматика. Входният низ (w) е cad.

S -> cAd

A -> ab / a

Дървото за разбор след извършване на синтактичен анализ отгоре надолу е както следва.

Фигура 01: Дърво на разбор 1 с парсиране отгоре надолу

S произвеждат c A d и A произвежда a b. Низата е кабинена. Това не е необходимия низ. Така че, необходимо е да се направи отстъпване, което е да се използват другите алтернативи.

По същия начин S произвеждат c A d. Прилагането на другата опция за A ще даде a. Сега той дава необходимия низ. Следователно, анализаторът приема този входен низ. Дървото за разбор след извършване на синтактичен анализ отгоре надолу е както следва.

Фигура 02: Разбор на дърво 2 с разграждане отгоре надолу

Когато входният низ (w) е abbcde

Обмислете следните правила за производство на граматика.

S -> aABe

A -> Abc / b

B -> d

Разбор отгоре надолу,

S -> aABe (Замяна на A -> Abc)

S -> aAbcBe (Замяна на A -> b)

S -> abbcBe (Замяна на B -> d)

S -> abbcde

Заместването започва първо от най-променливата вляво и след това до следващата дясна позиция и така нататък. Следователно, той следва най-левия метод за извличане. Освен това е важно да решите какво правило за производство да изберете, когато има променлива.

Какво е отварянето отдолу?

Анализът отдолу нагоре се случва по друг начин. Анализът се случва от входния низ до стартовия символ. Помислете за следните правила за производство на граматика и нека входният низ да бъде w

S -> cAd

A -> ab / a

Дървото на анализа след извършване на разбор отдолу нагоре е както следва.

Фигура 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 -> b)

S -> abbcde

Замяната започва първо с най-дясната първа и след това се премества в следващата лява позиция и така нататък. Следователно, той следва метод за извличане на левия мот.

Каква е разликата между разделянето отгоре надолу и отдолу?

Анализът отгоре надолу е анализ на стратегията, който първо разглежда най-високото ниво на дървото за разбор и работи надолу върху дървото на анализа, като използва правилата на официална граматика. Разборът отдолу нагоре е анализ на стратегията, който първо разглежда най-ниското ниво на дървото за разбор и обработва дървото на анализа, като използва правилата на официална граматика. Анализът се извършва от стартовия символ до входния низ, в синтактичен анализ отгоре надолу. От друга страна, синтактичният анализ се извършва от входния низ до стартовия символ, при анализа отдолу нагоре.

Освен това, основното решение в синтактичния анализ е да се избере какво правило за производство да се използва, за да се изгради низът, докато основното решение при синтактичния анализ е да се избере кога да се използва производствено правило, за да се намали низът, за да се получи началния символ. Нещо повече, синтактичният синтактичен анализ използва най-лявата деривация, а отдолу надолу анализацията използва най-дясното извеждане.

Обобщение - Отгоре надолу срещу отдолу нагоре

Разликата между синтактичния анализ отгоре надолу и отдолу нагоре е, че синтактичният разбор отгоре надолу изпълнява анализа от символа на зрението към входния низ, докато синтактичният анализ отдолу надолу извършва анализа от входния низ до началния символ.

справка:

1. „Лекция за дизайн на компилатор 5 - Въведение в парсери и LL (1) Парсинг.“ Дизайн на компилатора Лекция 5 - Въведение в парсери и LL (1) Парсинг, Лекции за порти от Равиндрабабу Равула, 22 май 2014 г. Достъпно тук