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

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

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

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

Так как 6 — грамматика слабого пред|пествования, то, применяя теорему 5.!4 к цепочке убх, находим, что отношение > впервые встречается между 6 и х. Применяя эту теорему к а()ш, находим:- между 1з и ш, а так как ш и у начинаются Одним и тем же символом, то ) оказывается между !) и у. Поэтому !а'р! '"!уб!. Так как дано, что )х!-=!у!, то должно быть а'6=уб и х=-у. Если мы сможем показать, что р=6, то этим докажем, что сс'=-у, Ио из обратимости следует, что А=-В, и, значит, мы получим противоречие с предположением, что уВх~а'Ау. Если (1~ 6, то одна из этих цепочек должна быть суффиксом другой.

Чтобы показать, что (з=-6, исследуем отдельно каждый из возможных случаев. Случай 1: р=..:ЕХ6 для некоторых г и Х. Так как Х вЂ” последний символ цепочки у, то, применяя теорему 5,14 к правовыводимой цепочке уВх, имеем ХЛВ или Х ' В, ЭТО нарушает условие слабого предшествовапия. Случай 2: 6=ЕХр для некоторых В и Х. Этот случай симметричен только что рассмотренному. Итак, р=-6 и б — (1,1)-ОПК-грамматика. [3 Теорема 5.21. Каждая (т, й)-ОПК-грамматика лвллеГися 1-Й(й)- грамматикой.

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

( ) Следствие. Каждая ОПК-грамматика однозначна. Теперь перейдем к построению алгоритма разбора типа „перенос — свертка" для ОПК-грамматик и обсудим эффективную реализацию этого алгоритма. Допустим, что алгоритм указанного типа используется для анализа ОПК-грамматики б и что он находится в конфигурации (а, ГВ, я).

Тогда можно задать множества Яе и в1', которые скажут нам, появилась ли основа право- выводимой цепочки аш наверху магазина (т. е. образует лиона суффикс цепочки а) или же правый конец основы расположен где-то в ш (и тогда надо делать перенос). Если основа в магазине, то эти множества скажут, какова она и какое правило применить для ее свертки. Определение.

Пусть 6 = (1ч, Т., Р, В) — ОПК-грамматика. Для А 6 (ч определим Яо,„(А) как множество таких троек (а, (1, х), что !а!= — т, !х!=п и в пополненной грамматике есть вывод $'"В'5" =>„' у а А ху =>, у арху Множество в)го,„пусть состоит из таких пар (а, х), что (1) либо ! а ! = и +1, где 1 — длина самой длинной правой части правил нз Р, либо !а! < т+1 и а начинается с 5'"; (2) (х!=-и; (3) существует вывод $ В'$" >,'()Ау=э„буу, где ах — надцепочка цепочки руу, расположенная так, что а лежит внутри цепочки ру и не содержит ее последнего сих1вола.

В очевидных случаях мы будем опускать индексы б, т и и в обозначениях Я(А) и ву'. Идея состоит в том, что появление подцепочки арх в ходе просмотра слева направо правовыводимой цепочки должно указывать, что р-- основа н ее надо свернуть к А, если (а, р, х) Е Я (А). Появление такой цепочки ах, что (а, х) ЕЬ", указывает па то, что основа еще не получена, но, возможно, расположена справа от а. Лемма 5.6 подтверждает, что так оно и есть. Лемма 5.6. Грамматика б = ()ч, В, Р, В) является (т, и)-ОПК- грамматикой тогда и только тогда, когда выполняются следующие условия: гл.

в. однопгоходнып синтлксичвскип лнллиз ввз возвглтов вл. детгиз кллссы гелммлтик (!) Пусть А — О и  — 6 — разные правила. Тогда если (а, р, х) ЕЯГ „(А) и (у, 6, х) бЯ~ „(В), то а() — не суффикс цепочки 76, и обратно. (2) Для всех А Е )л( из (а, р, х) Е Я, „(А) следует, что (Оар, к) не содержится в М' „ни для какой цепочки О. Доказательство. Достаточность.

Допустим, что б — не (т, п)-ОПК-грамматика. Тогда в пополненной грамматике б' найдутся выводы 9"5 5" =>„аАис =о,арсв $ 5 $" =о„ТВх=Ф„Тбх= а'ру где а и а' совпадают в последних т позициях, пс и у совпадают в первых п позициях и (х! =(у), но ТВх~а'Ау. Пусть г состоит ,'из последних т символов цепочки а, а г из первых и символов цепочки пс. Тогда (г,й, г) б Яс (А). Если хчиу и !х)~)у(, то должно быть (Оеб, г) ЕД' для некоторой цепочки О, так что условие (2) нарушается. Если х=у, то (ц, 6, г) ЕЯг(В), где с! состоит нз последних т символов цепочки у. Если А — р и В 6— это одно и то жс правило, то при к=у мы вопреки предположению получаем уВх=а'Ау.

Но так как одна из цепочек с!6 и е!3 является суффиксом другой, то, если правила А — б и  — 6 различны, нарушается условие (1). Необходимость. Если нарушается условие (1) или (2), легко доказать, что нарушается (т, п)-ОПК-условие. Эту часть доказательства оставляем в качестве упражнения. Теперь можно перейти к описанию алгоритма разбора типа „перенос — свертка" для ОПК-грамматик. Так как для этого нужно знать множества Ж(А) и Д', займемся сначала их вычислением. Л л г о р и т м 5.

! 6. П о с т р о е н н е м п о ж е с т в Яс „„(А) и вс" Вход. Приведенная грамматика б=. (И, Х, Р, 5). Выход. Множества гс „(А) для А 6Х и вс'",„. Метод. (1) Пусть ! — длина самой длинной правой части правила. Вычислим множество д' таких цепочек Т, что (а) !Т!=-т+п+1или (у! (т+п+! и 7 начинается сб; (б) 7 — подцепочка цепочки а~и, где арсе — правовыводимая цепочка с основой р и и= ВИВТ„(пс); (в) у содержит хотя бы один нетерминал. Здесь можно применить метод, подобный тому, что применялся в первой части алгоритма 5.13. (2) Для А Е Х пусть,Ж (А) содержит каждую тройку (а, р, х) для которой в У найдется цепочка уаАху, в Р— правило А— и (а!=т, (х(=п.

(3) Пусть М' содержит каждую пару (а, х), для которой в У найдется цепочка уВу, в Р†прави  — 6, ах — подцепочка цепочки тбу, а внутри цепочки 76, за исключением ее последнего символа. Требуется также, чтобы (к!-= п и !а ! =.сп +1, где 1 †сам длинная правая часть правила, либо а начинается с $" и !а) (т+1. П Теорема 5.22.

Алгоритм 5.6 правильно вычисляет множества Я(А) и 4'. Доказательств о. Упражнение. ~3 А л г о р и т м 5.17. П о с т р о е н и е а л г о р и т м а т и и а „п е р енос — свертка" для ОПК-г рамматик. Вход. (т, п)-ОПК-грамматика б=-. (Х, Х, Р, 5), пополненная до б'=-(Х', Х, Р, 5'). Выход. Ллгоритм Л = (7', д) типа „перенос — свертка" для грамматики б, Метод. Функции 7 и д зададим так: (1) 7(а, ш)=-. перенос, если (сс, ис) 6 сс",„... (2) 7'(а, ш)- свертка, если а=а,а, и (а„ам пс) ЕЯг,„(А) для некоторого А, но пе верно, что А =-5', а, †-- 3 и ссе =5, (3) 7(5'"5, 5")=допуск, (4) 7(а, ис)=ошибка в остальных случаях, (5) д(а, ис)-- с, если а=.а,сс„(сс„а., ис) ЕЯ~(А) и А — а,— правило с номером (6) у(а, ис) = ошибка в остальных случаях.

с) Теорема 5.23. Алгоритм 5.!7 строит корректный алгоритм разбора типа „перенос- свертки" для грамматсски б. Доказательство. В силу леммы 5.6 при определении функций 7 и д пе возникает недоразумений. По определению множества Яс (А) всякий раз, когда делается свертка, свертываемая цепочка а, служит основой некоторой цепочки (!а,агшг. Если бы она оказалась основой какой-нибудь другой цепочки (!'а,а,свг', то нарушилось бы ОПК-условие.

Единственный трудный момесст— доказательство того, что выполняется условие (3) определения ОПК-грамматики: (х!()у!. Нетрудно показать, что в качестве выводов в ОПК-определении можно взять выводы цепочек (!аса,свг и ()'аса,исг' (в любом порядке), так что условие (3) выполняется. В алгоритме А = (7', у), построенном алгоритмом 5.17, функции 7 и д зависят, очевидно, только от ограниченной части цепочек, которые могут быть их аргументами, хотя в различные моменты приходится рассматривать подцепочки различной длины. Приведем реализацию обеих функций 7 и д в виде дерева реше- 487 вл. дпигие клкссы гРАммвтик ) (а„е) Е )а, е) Окаичеиие певички а Гл.

Б. Одпопроходнып синтАксический АнАлиз Без БОББРАтов ний. Сначала для данных цепочек — и в магазине и х на входе- можно пойти по ветви, соответствующей первым л символам цепочки х. Пегом для каждой такой цепочки из п символов можно начать просматривать я в обратном направлении, на каждом шаге решая, продолжать ли просмотр далыпе или объявить об ошибке, переносе илн свертке. Если объявлена свертка, то у нас достаточно информации, чтобы точно сказать, какое применить правило, так что в дерево решений можно вкл)очить и функцию й.. Для принятия решений можно также использовать обобщенный алгоритм Домелки (см.

упражнения равд. 4.1). Пример 5.43, Рассмотрим грамматику б с правилами (О) 5 5 (1) 5- Ол (2) 5 — 15 (3) А — ОА (4) А — ! Это (1,0)-ОПК-грамматика. Для вычисления множеств Я(А), Я(5) и а))Г нам нужно множество цепочек длины 3 или меньше, которые могут встречаться в активных префиксах правовыводимых цепочек и содержать иетерминал. Это множество состоит из цепочек $5', $5, $0А, $15, ООА, 1!5, 10А и их подцепочек.

Теперь вычисляем У1,е(5') = (($, 5, е)) Яс,а(5) — — — (($, ОА, е), ($, 15, е), (1, ОА, е), (1, 15, е)) .а),е(л) =-((О, Ол, е), (О, 1, е)) Множество,Л' состоит из пар (сс, е), где и — любая из цепочек $, $0, $00, 000, $1, $11, $10, 111, 100 и !1О. Функции 1 и д приведены на рис. 5.17.

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

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

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

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