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

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

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

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

е. в этом примере и=па и в=с. Обратите внимание иа сходство данного здесь определения ситуации с тем, что встречалось раньше при описании алгоритма Зрли. Между этими двумя понятиями возникает интересная связь, если алгоритм Эрли применяется к 1.К(Й)-грамматике (см. упр. 5.2.16). Представление о (.К(Й)-ситуациях, соответствующих активным префиксам грамматики, дает ключ к пониманию того, как работает детерминированный правый анализатор для ).К(Й)-грамматики. В некотором смысле основной интерес для нас представляют ьК(Й)-ситуации вида [А — 5, и], в которых точка находится на правом конце правила. Эти'ситуации указывают, какие правила можно применить для свертки правовыводимых цепочек.

В основе 1.К(Й)-разбора лежат следующие определение и теорема: Определение. Определим функцию ЕЕЕА (а) так (далее мы опускаем Й иуили 6, если ясно, о чем речь): (1) если а начинается терминалом, то ЕЕЕА(а) =-Е1КВТА(а), (2) если и начинается иетерминалом, то ЕЕЕ (я) = (еа! ест ЕГКВТ„(а) и существует Вывод а=э',р=О,шх, где () ~ Агах длЯ ЛЕ5(). Гч. з. ОднОпРОхОдныЙ синтАксический А!!Аа!Нз Без ВОЗВРАТОВ В З ДетЕРМИИИРОВАНИЫЙ ВОСХОДИ!ЦИЙ синтАКСНЧескин ~Нализ Таким образом, ЕРРА(я) включает все элементы множества Р!КЗТА(я), при выводе которых нетерминал, стоящий на левох! конде цепочки, не заменяется пустой цепочкой е (иначе говоря, в правом выводе из цепочки я, начинающейся нетерминалом, па последнем шаге не должно применяться е-правило).

Пример 5.28. Рассмотрим грамматику 6 с правилами 5 — АВ А Ва(е  — ~СЬ) С С р)е Здесь Г1КЗТ,(5)=(е, а, Ь, с, аб„ас, Ьа, са, сб'), ЕГР,(5) —... (са, сЬ). Г) Напомним, что в гл. 4 излагался восходящий алгоритм разбора, который не работал для грамматик, содержащих е-правила. В случае 1К(й)-разбора е-правила в грамматике разрешаются, но надо быть осторожным при „свертке" пустой цепочки к нетермипалу.

Мы увидим, что функция ЕГГ помогает правильно устанавливать, когда пустая цепочка является основой, к которой надо применить свертку. Сначала, однако, введем слегка видоизмененное определение ЕК(й)-грамматики. Два вывода, входящие в это определение, фактически играют взаимозаменяемые роли, и, следовательно, пе теряя общности, можно считать, что основа цепочки во втором выводе простирается по крайней мере так же далеко вправо, как в первом.

Лемма 5.2. Если 6 = (!з, Х, Р, 5') — пополненная грамматика, которая не является ЕК(й)-грамматикой, то суи(ествуют выводы 5' =З,'яАи!=!>„я()и! и 5' =Ф," уВх =;>, убх = яру, где Г!КЗТА(!о) =- Р!КЗТА(у) и (уб(:=: )яф), но ТВХФяАу. Д о к а з а т е л ь с т в о. Согласно (.й(я)-определению, можно найти выводы, удовлетворяющие всем нужным условиям, за исключением, быть может, условия (уб ~ '-)я()!. Допустим поэтому, что !Тб) < ~ яр!. Пока!кем, что 1.К(й)-условие нарушается для другого примера, в котором уб играет роль я() в первоначальном условии.

Так как дано, что убх = я!)у и )уб! < )я()), то для некоторой цепочки гЕХ' можно записать яб=убг. Таким образом, есть выводы 5'~,'уВх "„убх и 5' =>, 'яА!о =Ф, яр!в = убгто далее, цепочка г была определена так, что х=-гу. Так как Р!КЗТ,(!о) =Р!КЗТ,(У), то Г1КЯТА(х)=Р!КВТА(по). ЕК(й)-Условие, если оно выполняется, говорит, что яАИ!=-уВги!. Поэтому отцепляя" от обеих сторон равенства !о, получаем яА=тВг, „прицепляя" в новом равенстве у, получаем ТВгу =- яАу.

Но гу=х, и, значит, мы показали, что яАу = уВх, а это с самого начала предполагалось ложным. Если сопоставить два приведенных выше вывода с ЕК(Ь)-условием, окажется, что они удовлетворяют условиям леммы (разумеется, надо подходящим образом переименовать цепочки). Метод ЕК(й)-разбора основан на следующей теореме. Теорема 5.9.

Грамматика 6=(х(, Х, Р, 5) является Ей(й)- громмтпикой тогда и только тогда, когда для каждой цепочки иЕХ'А выполняется такое условие. Пусть я)) — активный префикс яравовыводимой цепочки сф!в пополненной грамматисси 6'. Если 1К(я)-ситуация [А — !) °, и) допустима для яр, то нет другой 1 К(я)-ситуации !А! — (), (1„о), допустимой для яр, причем ИЕЕРР (!з,о), (Заметим, чтоб., может быть пустой цепочкой е.) Доказательство.

Необходимость. Пусть !А — р °, и] и 1А,— р, бг, о1 — две различные ситуации, допустимые для я(1, т. е. в пополненной грамматике существуют выводы 5 ~,яА!о=О„яр!в 5' =>, "я, А,х ~, я,Ц3.,х причем Г1КЗТА(п!)=и, Р)КЗТ (х) =о и я()=я!р,. Кроме того, (),х=-З",иу для некоторой цепочки у и в этом (возможно, пустом) выводе нетерминал на левом конце никогда не заменяется пустой цепочкой. Мы утверждаем, что 6 не может быть 1К(я)-грамматикой.

Чтобы доказать это, исследуем три случая: (1) р, = е, (2) р.,~Х и (3) Ц, содержит нетерминал. Случай 1: Если р,=е, то и=о и выводы имеют вид 5' =о', яАгв =о, я~!в 5' =;>, 'я, А,х =->„яДх тле Р)КЗТА(!в) = Р1КЗТА(х) = и = — о. Так как рассматриваемые "й(Я)-ситуации различны„то либо А~ А„либо ~~~,.

В любом случае нарушается 1.К(й)-условие. Случай 2: Если ~,= — г для некоторой цепочки ЗЕБР+, то 5' =з', яА!в =з, арго 5' =>,'я!А!х=>„я!р,гх где яи=я!(), и Р!КЗТА(гх)=и. Но тогда 6 — не ЕК(й)-грамма. тика, так как яАгх не может совпадать с я,А,х, если гЕа '. 435 Гл. Б. ОднопРОходныи синтАксическиЙ АнАлиз Без ВОВВРАтОВ В,е детеРминиРОВАнпый Восходящий сиптлксическиЙ АнАлиз Случай 3: Допустим„что р„содержит хотя бы один петер. мииальный символ. Тогда р, =О, 'и,Вит-— О, и,и.,и„где и,и, Фе, так как в этом выводе нетерминал на левом конце не заменяется на е. Итак, имеем два вывода 5' =Ф', яАсо=Ф, ябсо 5' Р" ,а,А,х =ос арф,х в которых яфс=сф и и,и,и,х=иу. В определении 1.К(й)-трам.

матикн требуется, чтобы яЛи,и,и,х=-яф,и,Ви,х, т. е. аАи,и, = я1[[,и,В. Подставляя ар вместо а1р„получаем Ли,и,=()и,В, Но это невозможно, так как и,ис Фь е. Заметим, что именно здесь используется условие, что и Е ЕГГА(р„о). Если бы в формулировке теоремы мы заменили ЕГГ на Г[КЗТ, то цепочка и,и, могла бы быть пустой, и тогда аАи,и,и,х=-=а,[),и,Ви,х (если и,й,=е и р =в), Достаточность.

Допустим, что 6 — не [.К(й)-грамматика. Тогда в пополненной грамматике есть два вывода (5.2.!) 5' =О, *аА со =!>„арсе (5.2.2) 5'=О,"уВх=ь,убх = яру для которых Г[КВТ (со) =Г[КЗТА(у) =-и, ио аАу~уВх. Зти Выводы можно выбрать такими, что цепочка ар будет настолько короткой, насколько это возможно. В силу леммы 5.2 можно считать, что 1!5[~!а[1!. Пусть я,А,у, †последн цепочка в выводе 5' ~„уВх такая, что длина ее открытой части не больше [я[[!+1, т. е. я,А,! < !яр!+1. Тогда вывод (5.2.2) можно записать в видо (5.2.3) 5' =о, 'а, А,у, =->, а,!3,р,у, =;>*, аср,у где а,д, =ад. В силу нашего выбора цепочки я,А,у, получаем !а,!(~я~(~!уб! и, кроме того, на последнем шаге вывода р,у,=ь',у не участвует правило  — е.

Если бы это правило применялось последним, то а,А,у, не была бы последней цепочкой вывода 5~',урх, у которой длина открытой части не превосходит ~ яр(+! . Таким образом, и = Г[КВТл(у) содержится в ЕРРА9,у,), и можно заключить, что ситуация [А,— ~, ~„о] допустима для ар, где о= Г[КЗТ (у,). Из существования вывода (5.2.1) вытекает, что ситуация р! р., и] тоже допустима для а[1, так что осталось доказать, что А„--.~,.~, отличается от Л р .

Итак, пусть А,— ![, ~, совпадает с А р . Тогда вывод (5.2.3) имеет вид 5'~*,а,Ау=Ф„а !3у где я18=ар. Поэтому а, =я и аАу=-аВх, что противоречит предположению о том, что 6 ие [.К()с)-грамматика. Е) Чтобы построить детерминированный правый анализатор для [К(л)-грамматики, надо знать, как дли вссх активных префиксов найти все допустимые [.К(й)-ситуации. Определение. Пусть 6 — КС-грамматика и у — ее активный префикс. Определим 1Я(у) как множество 1.К(й)-ситуаций (относительно й и 6), допустимых для у.

Как и раньше, будем опускать индексы й и 6, если понятно, о чем Идет речь. Назовем множество У=(.1! [=-[сьо(у) для некоторого активного префикса у грамматики 6) системой' множеств допустимых 1К()с)-еишуиций, соответствующей грамматике 6. Теперь приведем алгоритм построения множества [.К(й)-ситуаций, допустимых для произволышй заданной цепочки, а затем алгоритм построения системы всех таких множеств для л1обой грамматики 6. Алгоритм 58. Построение множества Щу). Вход, КСграмматика 6 =(Р[, 2, Р, 5) и у Е(МОЕ)*. Выход.

)с~(у). Метод. Если у=Х,Х ...Х„, то для того, чтобы построить)'„(у), построим !'„(е), 1'А(Х,), ['А(Х,Х,), ..., ~'А(Х,ХА... Х„). (1) Построим [сА(е) так: (а) Если 5 — аЕР, включить [5 — а, е] в )сА(е). (б) Если ситуация [А — Вя, и] уже включена в )сА(е) и  — р ЕР, то для каждой цепочки х Е Г!КВТА(аи) включить ситуацию [В [), х] в !'А(е) при условии, что там ее еще нет. (в) Повторять шаг (б) до тех пор, пока в 1' (е) нельзя будет включить новую ситуацию. (2) Допустим, что мы уже построили [сА(Х,Х,...

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

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

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

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