Главная » Просмотр файлов » Теория синтаксического анализа, перевода и компиляции - Том 1

Теория синтаксического анализа, перевода и компиляции - Том 1 (943928), страница 105

Файл №943928 Теория синтаксического анализа, перевода и компиляции - Том 1 (Теория синтаксического анализа, перевода и компиляции) 105 страницаТеория синтаксического анализа, перевода и компиляции - Том 1 (943928) страница 1052013-09-12СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

Текст из файла (страница 105)

о' Если п = 2, . это множество состоит нз правйл А — В /В, 1 2 В,— а, и В,— а,. Для 1((«г> В случае (а;1=-1 можно положить В<=а, и исключить правило Вг — ао (6) Правило А — а,/и /.../а„, где а; — цепочка нетсрминалов и терминалов, заменяет множество правил А — »а,'(а,'/...(а„' и Х вЂ” а для каждого терминала а, где а; — цепочка ао в которой каждый терминал а заменен нетермийалом Х,. Начиная с этого момента мы будем допускать включение -:.»Р в ЯНРОВ-программы расширенных правил указанного типа.

Приведенные выше определения позволяют механически строить эквивалентную ЯНРОВ-программу, удовлетворяющую первоначальному определению. Эти расширенные правила имеют естественный смысл, Напри- х мер, если для А есть правило А- г'1);... )'„, то вызов А успешен тогда и только тогда, когда вызов г'< успешен в той входной позиции, где был сделан вызов А, вызов г', успешен там, где закончился вызов )~„вызов У, успешен там, где закончился вызов )'„и т. д.

Аналогично, если для А есть правило А — а,/а,(.../аи, то вызов А успешен тогда и только тогда, когда а, достигает успека там, где вызван А; либо когда а, приводит к неудаче, но и, достигает успеха там, где вызван А, и т. д. Пример 6.2. Рассмотрим расширенную ЯНРОВ-программу Р = ((Е, Р, Т), (а, (,), +, и), В, В), где В состоит из правил Š— Т+Е(Т Т Рит/РР— (Е)/а Читателю предлагаем убедиться в том, что Е(Р)»-Е(ви), где ний. би — наша стандартная грамматика для арифметических вы ° раже- Чтобы привести Р к стандартной форме, сначала, применяя (6), введем новые нетерминалы Х„Х<, Х>, Х и Х,, Правила станут 5! В такимк: 6.1.

нисходящий РАВБОР с ОРРАниченными ВозВРАтАми Е ТХ»Е/Т Т вЂ” РХ,Т/Р Р Х,ЕХ,(Х Х,—. а Х< — ( ' ' х, ) Х,— + Х Согласно (6), первое правило заменяется правилами Š— В,/Т н В, — ТХ,Е. Учитывая (4), заменяем В,— Тх»Е правиламн В, ТВ, н В,— Х Е. Затем заменяем нх на- В,— ТВ,/Р, Ви — Х Е(Р и Р— (. Правило Š— В,(Т заменяется на Е-,В,С/Т и С вЂ” е. В результате получим множество правил Х, а Р В,. Х,Т/Р Х, ( Е В,С/Т Р В,С/Х Х,-) В, ТВ,(Р В, Х,В„(Р Х, + В„х Е/Р В ЕХ>(Р Х„и Т Вис/Р С е В, РВ</Р ' Для простоты мы отождествили с нетермнналом С каждый не- терминал Х, для которого получается правило Х вЂ”; е, и с петер.

миналом Р каждый 1', для которого К вЂ” (. () Всякий раз, когда ЯНРОВ-программа распознает цепочку и>, можно сверху вниз построить, дерево разбора" этой цепочки, прослеживая последовательность ЯНРОВ>операторов, выполняемых прн распознавании ш> Внутренние вершины этого дерева соответствуют нетерминалам, вызываемым в ходе выполнения программы и сообщающим об успехе.

Алгоритм 6.1. Дерево разбора, соответствующее выполнснию ЯНРОВ-программы. Вход. ЯНРОВ-программа Р=(Ы, 2, Р; 3) и такая цепочка и> 6 2', что В =ои (и> 1, з) . Выход, Дерево разбора цепочки и>. Метод. Ядро алгоритма образует рекурсивная процедура стройдерево, которая по утверждению вида А=о (х(у»з) (эго ее аргумент) строит дерево с корнем, помеченяым А, и кроной х. Вначале эта процедура вызывается для утверждения В =>и(п>(,з), 1Т» 519 гл е, алгоритмы рдзворд в ограниченными аозврдтдми Процедура стройдерево: Пусть А =э'" (х(у;з) — вход проце, дУры. ве (1) Если для А есть правило А — а или А- в, то постр и в, о построить . чен ршнну с меткой А ц для нее одного прямого потомка, поме-: ного а или в соответственно. Остановиться. (2) Если ля А д есть правило А ВС~О и х можно предста- ', вить в виде х=-х,х„так что В=э (х,', ,х,у,з) и С=э"'*(х 1, ) то пост оить ве и з(х у,з) ° стройдерево ' я а р ршину, намеченную А.

Выполнить процеду у ' мента С=у"*(х (,з). дл ргумента В=зз (х,(ху,з), а затем для аргу- н и деревья к ве шине, ( з1у, ). Присоединить получившиеся нри этом:, получнвшегося в е Р , помеченной А, так, чтобы корень дерева з потомком этой ве шин р зультате первого вызова, атал левым прямым. „,;. ршины, а норень второге дерева — правым. не выпол- дерева единственным стра дерево для этого аргумента н сделать корень получившегося кой . Остановиться. П ым потомком уже построенной вершины с мет- Заметим, что и о сивно только ля процедура стройдеревв вызывает аебя рекур-, д меньших значений титан что алгоритм 6.1 должен в конце концов остановиться. мощью алгоритма 6,1 построим дерево раз- Пример 6.3, С помо ора, порождаемое ЯНРО входно цепочки- айа. ЯЙРОВ-программой )в из примера 6.1 для . М':;.

В . р ц дуру стройдерево для утверждения Вначале вызовем п о е соответственно. Затем вызовем эту п оцед т н у, учтоА и В успешно распознают цепочки анба аким о разом пост о ! ак м Р, роение дерева начнется так, как показано д я а сразу приводит к успеху, поэтому ершние присоединяется один прямой потомок, помечен- приводят к успеху для и н Ь соответстпоказа аким о разом, п е ы казанного на рис. 6.1, б. р д дущее дерево вырастет до'дерева Ф р успеху для Ь, так что вершина, поме- С сразу приводит К с енная, получит одного потомка, помеченного Ь.

Вызов В успешен для а, поскольк прямого потомка„ по льну успешеи вызов А, так что В получает томка, помеченного а. меченного А, а он в свою очередь — по- п а. Все дерево показано на рис. 6.1, в. С) Заметим, что если н программа азбо а, то множество ЯНРОВ-правил трактуется как Р Р, всякий раз, когда нетерминал сообщает 526 ел, нисходящия развор с ограниченными возаратдми об успехе, для распознанной им части входной цепочки можно построить соответствующий перевод (который позднее можно аннулировать), причем используются переводы „потомков" этого нетермннала в смысле только мто описанного дерева разбора. 1,l~ Рнс. 6.1. Построение дереве разбора с иомощьвз ЯНРОВ-программм.

Этот метод трансляции подобен сннтанснчески управляемой трансляции для контекстно свободных грамматик, О нем еще будет идти речь в гл. 9. Корректность алгоритма 6.! нельзя „доказать", потому что, как уже говорилось, он сам служит конструнтнвным определением дерева разбора, порождаемого ЯНРОВ-программой. Однако легио показать, что кропай этого дерева является входная цепочка. Индукцней по числу вызовов процедуры стройдерево можно показать, что если она вызывается для аргумента А~" (х1у, з), то результатом будет дерево с кроной х.

Некоторые' из успешных результатов будут аннулированы. Иными словами, когда А=о (ху(х, з) и есть правило А- ВСАТ, может оказаться, что В~+(х1уг, з), но С=>+((уг,(). Тогда соотношение В=~+ (х)уг, з) и все успешные шаги, с помощью которых оно было построено, иа самом деле не включаются в определение дерева разбора входной цепочки (ие считая самого отрицательного результата). Этп успешные шаги ие отражены в дереве разбора, как и вызов процедуры стройдерево для аргу- 521 ГЛ б. АЛГОРИТМЫ РАЗВОРА С ОГРАНИЧЕННЫМИ ВОЗВРАТАМИ »Л. НИСХОДЯЩИЙ РАЗБОР С ОГРАНИЧЕННЫМИ ВОЗВРАТАМИ мента В=ВА" (х1уг, з).

Но в него включаются все успешные шаги, которые в конечном счете приводят к успешному распознаванию входной цепочки. 6Л,2. 'ЯНРОВ и детерминированные КС-языки Может оказаться довольно трудным установить, какой язык определяет ЯНРОВ-программа. Чтобы дать представление об определяющей силе ЯНРОВ-программ, докажем, что каждый детерминированный КС-язык с концевым маркером распознается некоторой ЯНРОВ-программой. Кроме того, существует тесная связь между деревьями разбора, порождаемыми этой программой, и деревьями выводов в „естественной" КС-грамматике для этого языка, которая строится по соответствующему ДМП-автомату так, как описано в лемме 2.26.

Лемма 6.2 позволяет упростить представление ДМП-автомата, используемое в этом разделе. Лемма 6.2. Если Е =Е, (М1) для ДМП-автомата М„то Е=Е,(М) для ДМП-автомата М, который на каждом свсем шаге может увеличить длину магазина не более чем на 1. Доказательство. Доказать это утверждение было предложено еще в упр. 2.5.3. Говоря неформально, надо вместо шага, заменяющего 2 цепочкой Х, ... Х» для /з > 2, сделать шаги, заменяккцие 2 на Г' Х„, 1'» на 1'„;Х 1О ..., )«, иа 3«,Х» н 1', иа Х,Х,. Все У'; — это новые магазинные символй, причем верх магазина расположен слева.

(1 Лемма 6.3. Если Š— детерминированный КС-язык и $ — новый ' символ, то Е5 Е, (М) для некоторого ДМП-автомата М. Д о к а з а т е л ь с т в о. Доказательство получается простой модификацией доказательства леммы 2.22. Пусть. Е = Е (М,). Тогда М моделирует М„храня в конечной памяти своего управляющего устройства очередной входной символ. Если М„ переходит в заключительное состояние и 6 †очередн входной символ, то М стирает содержимое магазина. Так как никаких других шагов не требуется и они невозможны, то М вЂ” детерминированный МП-автомат. П Теорема 6.1. Пусть М=((г, Х, Г, б, д„Х„Р) — ДМП-автомат и Е = Е, (М).

Характеристики

Тип файла
DJVU-файл
Размер
4,65 Mb
Тип материала
Высшее учебное заведение

Список файлов книги

Свежие статьи
Популярно сейчас
Почему делать на заказ в разы дороже, чем купить готовую учебную работу на СтудИзбе? Наши учебные работы продаются каждый год, тогда как большинство заказов выполняются с нуля. Найдите подходящий учебный материал на СтудИзбе!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
6556
Авторов
на СтудИзбе
299
Средний доход
с одного платного файла
Обучение Подробнее