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

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

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

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

,Л~ 1оеа ~е!ье И Ь 1ЬВ о Рис. 2.!8. Два дереве вывода. Теорема 2.80. Проблема, однозначна ли КС.граммагпика 6, неразре!мима. Доказательство. Пусть С=!ха у,), ..., (х„, у„) — частный случай проблемы соответствий над алфавитом г'. Возьмем КСграмматику 6=115, А, В), 2 0 2', Р, 5), где !=11, 2, „л) и Р содержит правила 5- А)В А — Х,А1(х;1 для 1(1 =. л В- уВ1!у21 для 1«:.!(н Нетерминалы А и В порождают соответственно языки Е и М,, определенные в равд.

2.8.3. Легко видеть, что не существует цепочки с двумя различными левыми выводами из нетерминала А 232 или из нетерминала В. Следовательно, если существует цепочка с двумя различными левыми выводами нз 5, то один должен начинаться шагом 5=О, А, а другой — шагом 5=О,В. Но по лемме 2,28 некоторая цепочка выводится из А н из В тогда и толька тогда, когда частный случай С проблемы соответствий Паста имеет решение. Таким образом, КС-грамматика 6 неоднозначна тогда и только тогда, когда С имеет решение. Отсюда сразу заключаем„что если бы существовал алгоритм, решающий проблему однозначности для КС-грамматик, то была бы разрешима проблема соответствий. П Определенная нами неоднозначность — зто свойство грамматики, а не языка.

Для некоторых неоднозначных грамматик можно построить эквивалентные им однозначные грамматики. Пример 2.48. Рассмотрим грамматику и язык из предыдущего примера. Грамматика 6 неоднозначна потому, что е)ее можно ассоциировать с двумя разными 112еп, По этой причине языки программирования, в которых разрешаются как операторы вида И вЂ” 112еп, так и операторы вида И вЂ” 112еп — е)ее, могут быть неоднозначными, Неоднозначность можно устранить, если договориться, что е1зе должно ассоциироваться с последним из предшествующих ему Феп, как на рис. 2.18, б. Можно подправить грамматику из примера 2.48, введя два иетерминала 5, н 5, н потребовав, чтобы 5, порождал операторы вида И вЂ” Йеп — е!ее, тогда как 5! может йорождать операторы обоих видов.

Правила новой грамматики таковы: 5, — И Ь 112еп 5, ~ И Ь 1)теп 5, е!зе 5, ) а 5, — И Ь йтеп 5, е)зе 5, ) а Тот факт, что слову е1зе предшествует только 5„гарантирует появление внутри конструкции 1пеп — еЬе либо символа а, либо другого е!ае. Таким образом, структура, изображенная на рис. 2.18, а, не возникнет. В гл. 8 мы изложим детерминированные методы разбора для различных грамматик, в том числе для грамматики этого примера, и там мы сможем доказать, что наша новая грамматика однозначна. сз Хотя нет общего алгоритма, выясняющего, однозначна ли грамматика, можно указать некоторые встречающиеся в пранео вилах, конструкции, приводящие к неоднозначности. Поскольк еоднозначпые грамматики часто анализируются труднее, чем У однозначные, мы назовем здесь несколько наиболее распространенных конструкций такого рода, так что их можно будет распознать на практике, 233 ГЛ.

й. ЭЛЕМЕНТЫ ТЕОРИИ ЯЗЫКОВ Приведенная грамматика, содержащая правила А- АА(а, неоднозначна, так как подцепочка ААА допускает два разных разбора (рис. 2.19). Эта неоднозначность исчезнет, если вместо правил А — АА (а взять правила А — АВ(  — «й или правила' А'- ВА(  — ~а Другой пример неоднозначности — правило А — АаЛ. Пара правил А- аА ~Ай тоже создает неоднозначность, так как цеРис. 2Л9, Два дерева рйвеера.

почка аА6 имеет два разных левых вывода А~иА~аА6 и А~Ар=эаАР. В качестве более тонкого примера пары правил, из-за которых грамматика может стать неоднозначной, приведем А — аА~ аА6А. Другие примеры неоднозначных грамматик можно найти в упражнениях. КС-язык называется неоднозначным (или суи(есйпеенно неоднозначнйы!), если он не порождается никакой однозначной КС- грамматикой. С первого взгляда не видно, существуют ли вообще неоднозначные КС-языки, но нашим следующим примером н будет как раз такой язык. Проблема, .порождает ли данная КС-грамматика однозначный язык (т. е.

существует ля эквивалентная ей однозначная грамматика), на самом деле неразрешима, по для некоторых больших подклассов КС-языков известно, что они однозначны; все придуманные до сих пор языки программирования тоже однозначны. Важнее Всего то, что, как мы увидим в гл. 6, каждый детерминированный КС-язык апре. еелястся„однозначной КС-грамматикой. Пример 2,47, Пусть Т.

= (а'Ьгс! ) !' = 1 или 1 =- 1). Этот КС-язык неоднозначен. Интуитивно это объясняется тем, что цепочки !=1 должны порождаться группой правил, отличных от праВил, порождающих цепочки с 1'=С По крайней мере некоторые Вз цепочек с ! =1=1 должны порождаться обоими механизмами.

234 й.й, СВОЙСТВА КОНТЕКСТНО СВОБОДНЫХ ЯЗЫКОВ Одна из КС-грамматик, порождающих Е, такова:  — ЛВ(РС А — аА(е  — ЬВс)е С- сС1е Р- аРЬ!е Ясно, что она неоднозначна. С помощью леммы Огдена можно показать, что язык Т. неоднозначен, Пусть 6 †произвольн КС-грамматика, порождающая Е, и й — число, связанное с О (см. теорему 2.24).

Можно считать, что й= 3. Рассййотрий!'пепочку г=айЬйсй'.й!, в которой выделены Все символы а. Ее можно записать в виде г=--иойоху. Так "как йо содержит выделенные позиции, то и и о состоят только из символов а. Если х содержит два различных символа, то, конечно, иойп!хйу(1., так что либо ХЕай, либо хбЬ", либо хаев. Если хЕай, то цепочка ной!ох!у имеет вид а"йеЬйсйей! для некоторого ! "р~й и погому не принадлежит Е. Если хЕсй, то ной!ох!у имеет впд ай-ЕЬ'с'"'+е*, где 1~р,<й. Эта цепочка тоже не принадлежит Ь.

ЕСЛИ ХЕЬй, тО исйЮХйу=ай.-е Ьйййеййй!, Гдс 1~рй .й. ЕСЛИ эта цепочка принадлежит Т., то либо р,=р„либо р,Фр, и р,=И. В последнем случае цепочка пой!ох!у=-айййР~Ьй".йе сйййй, конечно, не принадлежит Е. Поэтому заключаем, что р, =р,. Заметийй, что р, =)о! и р,=(х). По теореме 2.24 для любого ой~О найдется вывод (2.6.1) В=>йиАу=-э'иомАхму=-рено иге у Пусть, в частности, т=й(/р1. Так как 1 "р, "й, то т— целпе число.

Тогда ййс"!ох'"у=аййй!Ьй+й!сййй!. Для цепочки а" +'Ъйс" можно показать по симметрии, что существуют !й„о„йо„х„д„где только и, содержит символ а, о, ЕЬ', и что найдется такой нетерминал В, что (2.6.2) В.=>+ и, Вд =>й и йт Вх~' у и ом ~!о хв1~н ай+А!Ьй йй!ей+й! 1 1 1 1 В! Если мы сумеем показать, что этим двум выводам цепочки а +МЬ'йй'сй"й' соответствуют разные деревья, то тем самым докажем, что Т.— неоднозначный язык, поскольку грамматика П была выбрана произвольно и оказалась неоднозначной.

Допустим, что выводам (2.6.1) и (2.6.2) соответствует одно и то же дерево. Так как А порождает цепочки из символов а й' Ь, а В порождает цепочки из символов Ь и с, то А (соотВетственпо В) не может быть меткой вершины, которая является 255 гл. 3, злвмвнты твовии взыкьй х пгхжнения Я =->) а); Я ="~„' и); Я~~" и). (а) (а( (б) (сс) (в) (и 237 потомком вершины, помеченной В (соответственно А). Следовательно, найдется выводимая цепочка (,А(,В1„где 1„1м 1»вЂ” терминальные цепочки. Для всех 1 и 1 цепочка 11с'эх'1»и(ш,х(1» должна по предположению принадлежать Ь. Но (о)=-)х( и (о,( = (х,( и, кроме того, х и о, состоят только из символов Ь, о — из символов а и х, — из сймволов с. Тогда, выбрав 1 н 1 равными, и достаточно большими, можно считать, что в соответствующей цепочке символов Ь больше, чем символов а или с.

Отсюда заключаем, что грамматика 0 неоднозначна, а стало быть, и язык Л неоднозначен. С) упвАжиейия 2.6.1. Пусть ь — КС-язык и )? — регулярное множ в П житО, что следующие языки контекстно-свободны. жество. ока(а) 1Ь(1Т (Е,); (б) Р1Н(й); (в) ЯЗВ(Е); (г) 1.Я; (д) ( () Й. Определения операций (а) — (г) даны перед упр. 2.3,17. 2.6,2. Покажите, что если Š— КС-язык и Ь вЂ” гомоморфизм, то Ь '(~) — КС-язык. Указание; Пусть Р— МП-автомат, допускающий 7..

Постройте МП-автомат Р', который применяет Ь по очереди к каждому входному символу, запасает результат в буфере управляющего устройства и моделирует Р на символах из буфера. Позаботьтесь о том, чтобы Ваш буфер был конечной длины. 2.6,3. Покажите, что следующие языки не контекстно-свободны: ( ) ( 'Ь' '!! < 1)' (б) (а'Ысь11 <1<Ь); ' (в) множества цепочек с одинаковым числом символов а, Ь и с; (г) (аеЬ?а~Ь!/ / - 1); (аиЬ»а~Ь» ((л и > 1) ° (е) (а'Ь?се(все числа 1, 1, й разные); (ж) (лОа'(и~~ 1 — число в десятичной записи).

(Эта конструкция представляет холлеритовы поля в Фортране.) »»2.6.4. Покажите, что каждый КС-язык в однобуквенном алфавите регулярен. Указание: Воспользуйтесь леммой о разрастании. "+2.6.6. Покажите, что следующие языки не всегда являются КС-языками, когда Š— КС-язык: (а) МАХ (~); (б) М1Ь((Ц; (в) 7.п* = (х(хуЕ 1. для некоторого у и ) х(= )у().

*2.6,6. Докажите следующую лемму о разрастании для линейных языков. Если Š— линейный язык, то найдется такая константа Ь, что если гч1- и(г))л, то г — — имсху, где!исху!«Ь, схчЬе и ис'юх'у ЕЕ для всех Е 2,6.7. Покажите, что язык (а"Ь"а Ь") и, т) 1) не линейный.

*2.6.8. МП-автоматом с одним изворотом называется МП- автомат, который для любой входной цепочки сначала только пишет в магазин, а потом только стирает, т. е. начав стирать символы в магазине, ои уже не может сиона записывать (это и есть один поворот в работе с магазином).

Покажите, что КС-язык линееи тогда и только тогда, когда он распознается МП-автоматом с одним поворотом. *2,6,9. Пусть 6--()х, Х, Р, 5) — КС-грамматика. Покажите, что следующие языки контекстно-свободны: 2.6.16, Дайте подробное доказательство следствия из тео- ремы 2.2о. 2.6.11. Дополните доказательство теоремы 2,26. 2.6.12. Дайте более формальное описание ДМП-автоматов, фигурирующих в доказательствах лемм 2.29 (1) и 2.30 (1). *2.6.13.

Покажите, что язык 17с В Рс из равд. 2.6.3 кон- текстно-свободен тогда и только тогда, когда он пуст. 2.6.14. П , Покажите, что следующие проблемы для КС-грамма- тик г' неразрешимы: (а) й(6) — КС-язык? (б) 7.(6) — регулярный язык? Указан (в) 7, (6) — детерминированный КС-язык? казание: Используйте упр. 2.6.13 н рассмотрите КС-грамматику длЯ Языка 1,1с В Р, Докажите, что проблема, порождает ли контекстно- зависимая грамматика КС-язык, неразрешима. 2.6,16. П . Пусть 6, и 6,— КС-грамматики. докажите неразрешимость проблемы „7.(6,) () 7 (В») =~? »2.6.17. П .17. П с 6,— КС-грамматика и 6» праволинейная гр'"' матнка.

Докажите ГЛ. 2. ЭЛЕМЕНТЫ ТЕОРИИ ЯЗЫКОВ (а) неразрешимость проблемы,„1.(6,) =Е(6„)?" (б) разрешимость проблемы „1. (6,) й1 (6,)?" *2.6.18. П сть Р, и Р,— ДМП-автоматы. Докажите неразреу шимость следующих проблем: (а) Е(Р,) (1 Е(Р,) — детерминированный КС-язык? (б) 1. (Р,) Е(Р,) детерминированный КС-язык? (в) 1.

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

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

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

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