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

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

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

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

ьз Теорема 8.20. Клиссьг 1 .языков и языков просшого яргдшесшяоаииил несриянилы. Доказательство. 5!Бык 6., нз теоремы 8.19 представляет собой СЕ(1).язык, не являющийся языком простого предшествования. Естествепнан грамматика для 67 такова; 8 иА(ЬВ А - ОА((01 В-ОРА((011 Легко видеть, что это Е!,(2)-грамматика. Леван факторизация превращает ее в 1.1.(1).грамматику. Язык Е,=(О а!" (п ) 1) 0(ОЬ2" (гг) 1) не является Ы..язы. кол1 (см.

упр, 8.3.2]. 1.,— это язык простого предшествования с грамматикой простого прсдшестаования В А)В А — ОА1(и В 082(Ь гат ГЛ З ТСОРИЯ ДГТЕРМНННРОЗХННОГО РХЗВОРХ г 3. теОРия языков пРОстОГО пРедшссгвОВхния 8.3.3. Патин операторного предшвстваванни Исс,яедуем класс языков, порождаемых грамматиками операторного предшествозапия. Мы покажем, что хотя существуют неоднозначные грамматнки операторного предшествовання (простым примером такой грамматики служит грамматика 5 — А(В, А о,  — а), нзыки операторного предшествовання образуют собственное полмножество множштва языков простого предшествозания. Начпем с того, что покажем, что каждый язык операторного предшествоваиня порождается обратимои операторной грамматикой без цепных правил.

Лемма 8.13. Всякая (нг облет!слало обратимал) гра,клотика операторного пргдшеслмогаяия зкзиголенгпна грамматике операторного пргдшестгогиния без цепных привил. Доказательство. Легко видеть, что алгоритм 2.!1, устрзияющий цепные правила, сохраняет отношения операторного предшествованпя между терминалами. ) Дадим теперь алгоритм, преврашакнций произвольную КС- грамматику без цепных правил в Обратимую грамматику без цепных правил. Алгоритм 8 6.

Превращение КС грамматики, не с одержашей цепных правил, в эквивалентную обратимую грамматику. Вход. КС-грамматика 6=.(Х, 2, Р, 5) без цепных правил. Выход. Эквивалентная обратимая грамматика 6, = (Кн т, Р„5,]. Метод. (1) Нетерминаламя новой грамматики будут пецустые подмножества множества ЬЕ Формальтго положим Ы;=(М(М=В' 3(~О)6(5,).

(2) Для всех ш„тон ..,, ш из ХЯ и М„..., ГИЯ нз Ы; вкл~очить в Р; правила М н,М,ш,... Мять, где М = (А ) в Р существует правило А ш„Втшт...дяшя, В,6МГ для 1<! Й), Мть сд. Заметим, что таким способом поРождаетсЯ только ко. вечное число правил. [3) Для всех М ~:К, содержзптнх 5, включить в Р; правила 5, М. (4) Устранить все бесполезные ветерминалы и правила.

Полученные полезные подмножества множеств Ы; и Р; обсаначить КГ н Р, соответственно. Ц Пример 8.5. Рассмотрим грамматику 5- - и)аАЬ5 А-- а(а5ЬА твв На шаге (2) включаем в Р; правила (5) а (А) Ь (5) ( а (5, А) Ь (5) (а (А) Ь (5, А) !А) а(5)Ь(А)(а(5, А)Ь(А)(а(5)Ь(5,А) (5,А) а(а(5, А) Ь(5, А) На шаге (3) добавлием 5 -(5)((5 А) На шаге (4) обнаруживаем, что все (5)- и (А)-правила бесполезны, и получаем, таким образом, грамматику 5, (5, А) (5, А) а)а(5, А) Ь(5, А) Лемма 8.!4. Граггиотика 6О построгияал по 6 о слгоригцкг 8.6, обратима, если 6 не содержит цгпшхх правил, и явлнстпся грамматикой операторного и редшегтзояания, гслп 6 — граммшника операторного лра]шгслмогания.

Кроме того, Е(6,) =6(6). Доказательство. Обратимость гарантируется шагам (2], а поскольку 6 пе содержит цепных правил, на лаге (3) не могут появитьси необратимые правые части. Доказтельсгво того, что алгоритм 8.6 сохраняет отношения операторного прелшествования межпу терминалами, очевидно; мы оставляем его в качестве упражнении. Наконец, легко проверить иидукцией по длине вывода, что если А 6 М, то А ~3 м тогда и только тогда. когда М -Гд ш. Итак, язык операторного предшествоваиия порождается грамматикои в следуюшей нормальной форме, Теорема 8.2!.

Если Š— язык операторного пргдшгстгогиния, то )ы=Е(6) для некоторой грамматики операторного прся]шгслг- зогаяил 6=-(К, 2, Р, 5), яшкой, что (!] 6 — обратилач гронлатика, (2] 5 нг встречается г правых частях правил, (3] цгггныг прогала обязательно имеют 5 в левой насти. Доказательство. Достаточно применить алгоритмы 2.!! и 8.6 к произвольной грамматике операторного предшестиоаания. [) П ревратим теперь грамматику операторного предшествонания 6 в нормальной форме, описанной в теореме 8.21, в обратимую грамматику слабого предшсствования 6„ для которой Е(6Г)= =ЕЕ(6], где à †лев концевой маркер.

Потом построим Обратимую грамматик у слабого предшествовання 6Н для коюрой Е(6т] —.- ТВР гл и теояия детегмнниговлиного яхзвогх г г, теОРия языков пгостого пгедшгсгэоехния — Ц6). Тем самым мы покаткем, что множество языков операторного предшествования является подмножеством множества языков простого предшествовапия. Алгоритм 8 7. Превращение грамматики о не рата р- ного предшествоввния в грамматику слабого предшествоиания.

Вход. Обратимая грамматика операторного предшествовання 6 (Ы, 2, Р, 5), удовлтворяющая условиям теорсл!ы 8.21. Выход Обратимая грамматика слабого предшесгвоиання 6,= = (Ко Е () (г], Ро 5,), длЯ кето(юй Ц6,)=И46), гЛе УЦ2. Мгпюд. (1) Пусть К; состоит из всех таких символов [ХА], что ХЕЕО(Ф) и ЛЕД.

(2) Положим 5, — [15] (3) зададим гомоморфизм ь из ы;()2()(к) в м()е равенст- вами (а) Ь(а) = а лля а Е 2 ()(у], [б) Ы[ А])=.А Й '(и) определено только для цепочек аЕ ((т' 62)г, начинающих- ся символом из 2() (р) и не имеющих рядом стоящих кетерми- иалов. Кроме того, если значение Ь '(и) определено, то оно един- ственно.

Другими словами, Ь ' обьединяст нетерминал со стоя. щвм слева от него терминалом. Пусть Р; состоит из всех таких прав?т [аА] Ь '(аа), что А аЕР и аЕЕО(Ф]. (4) Полечныс подмножества множеств 1(; и Р; обозначим 1(, и Р, соответственно. Е) Пример 8.8. Пусть 6 определяется правилами 5 А А аАЬАг(аЛй]а Образуем только полезные подмиожссгва множеств Н) н Р( из алгоритма 8.7. Начнем с нетермннала [г5] Ему отвечает пра- вило [Е5] [гА] Пряниками лля [КЛ] будут [КЛ] б[аА][ЬА)с, [(А]- р[аА]й и [(А] (А. Правила для [аА) и [ЬА] стро- ятся аналогично.

Таням образом, правиламн грамматики 6, будут [15]- [ел] [рЛ) р[аА][ЬЛ]г(г[аА]й(уа [аА] а[аА][ЬА]г(а[иА)й(аи [ЬА] — Ь[аА][ЬА)с[Ь[аА)й(Ьа 0 Лемма 8.13. Грал!.каинска 6, из алгоритма 8.7 лггягтгл об. ратимой граммапшлои слабого пргдшггтеогалил и Ц6,) =-ФЦ6). Доказательство. Обратимость доказать легко, н мы ие дулен этого делать. Чтобы показать, что 6,— грамматика сла- бого предшествовання, надо установить, гто отношения ст п в 6, не пересекаются с уг'). Зададим гомоморфизм й равенст- вами (П й(а) =а для всех аЕ 2, (2) й(б) = Щ (3) 8([аА)]=-а. Достаточно показать, что (1) если Ха[У в 6о то й(Х) сТд(У) или й(Х) — 'й(У) в 6, (2) если Х ' У в 6„то й(Х)ц й(У) или й(Х) — 'Ей(?') в 6, (3) если Х ТгУ в 6„то а(Х) Тгй(1') в 6. Сгулий 1: Пусть Х ел ?' в 6„где ХФб и Хчь 5.

Тогда в Р, есть правило с такой правой частью, скажем аХ[аА]д, что [аА)=:хг, Уу для некоторой цепочки у. Если а чье, легко пока- зать, что в Р есть правило с правой частью, содержа?цей я ка- честве надцепочки Ь(Х[аА])'), и значит, й(Х) ' и в 6. Но из вида правил в Р, следует, что д(У)=а. Таким образоч, й(Х) ° 8(У). Если сг= — г и Х ЕЕ, то левая часть правила с правой частью аХ[аА]8 имеет вид [ХВ) для некоторого ВЕЫ. В этом случае в Р должно быть правило, правая часть которого содержит в качестве надцепочки ХВ. Более того, В аЛЬ(8) — правило из Р.

Следовательно, Х се а в 6. Так как в этом случае 8(Х) = Х, мы заключаем, что й(Х)(й(У). Если а — --г и Х=[ЬВ) для некоторых 8 ЕЕ и В Ей?, обозначим левую часть, соответствую- щую правой части аХ[аА]б, черев [ЬС). Тогда в Р есть пра- вило с правой частью, содержащей в качестве подцепочка ЬС„ и С вЂ” ВаАЬ(8) принадлежит Р. Поэтому ЬсТа в 6 и, зиа!ит, й(Х)гдд(У). Случай а=г и Х=[(В] для некоторого ВЕН (а также Х дй или Х.==й) .легко анализируется, Случай 2: Случай Х вЂ ' 1' рассматривается аналогично случаю 1. Случай 3; Х э У.

Предположим, что У~3. Тогда в Р, есть правило с такой правой частью, скажем а[аА]73, чтп [аЛ) ~г, ТХ и 7.~г, Уб длн некоторых у и б. Внд правил в Р, таков, что либо 2=:У и оба принадлежат 20 (3), либо 7.=[иВ) п У=[аС] или У=а для некоторых В и С нз Х В любом слу- чае й(7) =й(У).

Б Р должно быть правило с правой частью, содержащей надцепочку Ад(2), поскольку а[аА]78 служит правой частью В плесь н лягте символы гю и э, ебегягюют егмешеияя еэергтер. нога врглшгстееегвгя е 0 и лтялшсяяя прглшестэлвгяяя Вирта — Вебера в аг. ') Э вЂ” гоиеяорфигн„ опрея леячмй в глгергтяе З.т. !э! 7 л,л*е,д,л'л аа,т.а 1ез тш гл. в. тяогия днтгрминипоаднного пдзьорд некоторого правила из Рм Так как 6 не содержит лепных праепл, за исключеапем начального, уте г, и значит, в выводе [аА)=эа,уХ л(Х) выеодится не из а, а из А. Поэтому д(Х) ) л(2) и а(Х) я)д(г'] н 6. Поучай у.—.б не вызывает аатроднений. Для завершения доказатег!ьстаэ того, что 6, — грамлгатнка слабого прешцестпоаааия, нужно показать, что есчи правила А аХО и  — й принадлежат Рм то не выполняется нн одна из соотношений Х сТВ н Х ' В.

Положим В =[аС1 и временно допустим, что СФВ. Тогда, поскольку 6 не содержит цепных правил, у ко!орых а левай части стоит сил!зол, отличный от 5, ыожно УтвеРждать, что й=-)гб' длн некотоРой цепочки 6'тье, где Ь(1')=и. Так как 6'чьг, то Ьф') содержит хотя бы один терминал. Пусть Ь вЂ” самый левый из этих терминалов.

Тогда, поскольку а может встретиться в праэовыводимой н 6 цепочке слева от С, можно считать, что асей е 6. Но так как аХ6 служит правой частью некоторого правила нз Р„то Ь (6) — надцепочка правой части некоторого правила из Р, и значит, а — Ь н 6. Тем самым возможность С~В исключается. Если С вЂ” 5, то по теореме 8.21(2) должно быть а =-1. Но в этом случае, поскольку аХΠ— правая часть некоторого правала из Р„ г должно встретиться в правой части некоторого правила из Р, что по на!нему допушению нееерно. Отсюда заключаем, что 6,— грамматика слабого предшестао. ваниЯ.

Доказательство Равенства С (6т) =ГЦ6) очевидно, и мы его опускаем. Е) Теорема 8.22. Всякий язык операторного лргдилествояанмя явдяетсл языком простого предтгспгвованат Доказательство. Согласно теореме 8 21 и лемме 8.16, если Е = В' †яз операторного предп!естеоваиия, то ге †обратимый язык слабого предшестэования, рай 2, Легко обобщить алгоритм 8А так, чтобы устранить из грамматики языка ф., построенной алгоритмом 8.7, левый конпеяой маркер. (Вид правил э алгоритме 8.7 гарантирует, что полученная грамматика буд т приведенной н обратимой.) Детали доказптсльстп оставляем читателю в качестве упражнения.

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

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

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

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