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

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

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

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

Легко видеть, что в том частном случае, когда расширенный МП-автомат является обычным ДМП-автоматом, это определение согласуется с прежним. Кроме того, если конструкция леммы 2.2! применяется к расширенному МП-автомату, результатом будет детерминированный МП-автомат тогда и только тогда, когда детерминированным был исходный расширенный МП-автомат.

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

Лемма 2.27. Пусть Р= (!е, Х, Г, 6, д„7е, Р) — ДМП-автомат. Можно построить такой зквивалентный ДМП-автомшп Р' = = ф', Х, Г, 6', д;, 7;, Р), что (1) для всех а ЕХ, ЗАЕЦ' и 7. Е Г' либо (а) 6' (д, а, 7) содержит точно один элемент и 6' (д, е, Я) —— Я, либо ') Если верх магазина пасшнренного МП-аззомата расположен слеза, то здесь надо заменнть „суффикс" на „префикс", (б) 6 (г), а, 7) = и и 6' (д, е, У) содержит точно один злемент; (2) если 6'(д, а, 7е)=(г, Т) для некоторого аЕХ(!(е), то у=а7; для некоторой цепочки сзЕГз.

Доказательство. Символ 7; будет действовать как маркер, указывающий конец (дно) магазина и предотвращающий полное опустошение магазина. Пусть Г' == Г 0 (У;) и !е' =- =- (о,', о,) 0 9, а 6' определяется так: (1) 6' (дз', е, 7;) = (д„лзХ,) (2) для всех оЕ!',1, аЕХ 0(е) и 7 Е Г, таких, чтоб(о, а, 2) чь О, полагаем 6'(о, а, 2) = 6(д, а, 7); (3) если 6(д,е, Я) =1~ и 6(ц, а, 7) =-)3! для некоторых а ЕЕ и 2 б Г, полагаем 6' (д, а, 7) = (д„У); (4) для всех ЛЕГ' и аЕХ полагаем 6'(д„а, Е) =-(а„7). Благодаря правилу (!) Р' запишет в верхней части магазина 7з7; и, перейдя в состояние с1„начнет моделировать Р. Правила (2) позволяют Р' моделировать Р, пока очередной такт станет невозможным. В этой ситуации Р' (по правилу 3) перейдет в незаключительпое сосгояние д, и останется в нем, не изменяя содержимого ьшгазина, пока не будет прочитана оставшаяся часть входа.

Доказательство того, что 1.(Р') =- 1.(Р), оставляем в качестве упражнения. П ДМП-автомат может, исходя из некоторой конфигурации, проделать бесконечное число е-тактов, не прочитав больше пи Одного входного символа. Такую конфигурацию мы называем зацикливающей.

Определение, Конфигурацвя (д, ш, и) ДМП-автомата Р называется заз(икливиои!ей, если для каждого 1~! найдется такая конфигурация (ро гп, бг), что )й;(~ ~)сс) и И, ш) !-( (! ))-(р. Р ))- "° Таким образом, конфигурация зациклявающая, если Р может делать бесконечное число е-тактов, не укорачивая магазин; при этом магазин может либо бесконечно расти, либо циклически совпадать с несколькими различными цепочками. Заметим, что существуют иезацикливающне конфигурации, которые после ряда е-тактов, укорачивающих магазин, переходят в зацикливающую конфигурацию. Мы покажем, что нельзя сделать бесконечное число е-тактов, исходя нз любой данной конфигурации, не попав через конечное и притом вычислимое число тактов в зацикливающую конфигурацию.

Если Р попадает в зацикливающую конфигурацию в середине входной цепочки, то он больше не будет использовать Гл. 2. алименты теОРии языков м ь лвтомлты с млглзиииой плмятью входную цепочку, даже если удовлетворяет лемме 2.27. Мы хо- тим преобразовать данный ДМП-автомат Р в эквивалентный ДМП-автомат Р', который никогда не попадает в зацикливаю- щую конфигурацию.

Алгоритм 2,16, Обнаружение за цикливающих конфигураций. Вход. ДМП-автомат Р = (1,'~, Х, Г, 6, д„2м Р). Вьпсд. (!) С,= ((д, А) !(у, е, А) — зацикливающая конфигурация и ие существует такого гЕР, что (а, е, А)', *(г, е, я) для некоторой цепочки я Е Гл) и (2) С,=((д, А)1(у, е, А) — зацикливающая конфигурация и (д, е, А) « — '(г, е, я) для некоторых г ЕР и яЕГ*). Метод. Пусть ЧГ 11==и„Фà — п, н 1 — длина самой длинной цепочки, которую Р может записать в магазин за один такт, Пусть п,=п,(п",'"а+ — п,)Яп,— 1), если и,. 1, и п,=-п,, если и,=1. Число и„— это максимальное число е-тактов, которое может сделать Р, не зацикливаясь.

(1) Для всех у Е Я и Л Е Г выяснить, выполняется ли (д, е, Л) « — "з(г, е, я) для каких-нибудь г Е11 н яЕ Г+. При этом используется прямое моделирование Р. Если да, то (а, е, А) — зацикливающая конфигурация, так как в этом случае — мы это покажем — должна быть такая пара (д', А'), где д'ЕД и А' Е Г, что (а, е, А)«-* (а', е, А'р) (д', е, Л'у«1) « — ""l о(д', е, А'Т»6) где т > 0 и 1 > О. Заметим, что у может быть е. (2) Если (д, е, А) — зацикливающая конфигурация, выяснить, существует ли такое г ЕР, что (у, е, А) « — 1(г, е, я) для некоторого 0(!'(п,.

При этом снова используется прямое модели. рование. Если да, то включить (а, А) в С, В противном случае включить (а, А) в С,. Мы утверждаем, что если Р может достичь заключительная конфигурации, исходя из (д, е, А), то это должно произойти за и, или меньшее число тактов. Е) Теорема 2.22.

Алгоритм 2.16 правильно находит множества и С,. Доказательство. Сначала докажем, что шаг (1) правильно определяет множество С,()С,. Если (д, А)ЕС,()См то очевидно, что (а, е, А) «-"з (г, е, я). Обратно, допустим, что (д, е, А) «-"з(г, е, я). Случай 1: Существует такая цепочка )! Е Г*, что 1)з)> и,п,1 и (д, е, А) « — "(р, е, Р) « — ч (г, е, я) для некоторого рЕ 11. Еслй в 214 последовательности тактов (а, е, А) « — *(р, е, 6) для каждого 1==1, 2, ..., п,и,1+1 выделить конфигурацию, в которой оказывается Р, когда длина его магазина и последний раз становится равной 1, то можно заметить, что в выделенной последовательности конфигураций некоторое состояние а' и символ А' должны дважды встречаться в качестве текущего состояния и верхнего символа магазина; другими словами, можно писать (д, е, А) «-*(д', е, А'6) « — '(у', е, Л'уб)1 "(р, е, Р). Таким образом, по лемме 2.20 (д, е.

А) ~ — * (д', е, А'6) 'г — » (у', е, Л'у»6) для всех 1'~ )О. Здесь т ) О, поэтому, исходя из конфигурации (д, е„А), можно сделать бесконечна много е-тактов и, следовательно, (д, А) Е С, 11 С,. Случай 2: Допустим, что в противоположность случаю 1 1«1)(и и! для всех таких 6, что (в, е, Л)« —" (р, е, ()) «-ч (», е, я), Так как в этой последовательности конфигураций имеется и, + 1 различных )1, число возможных состояний равно и, и число возможных магазинных цепочек длины, не большей и,п,1, равно и,+и, '1-и.",+ ... +и',""и=(п",'"''' — п,)1(п,— 1), то некоторая конфигурация должна повторяться.

Отсюда непосредственно следует, что (д, А) ЕС, ОС,. Доказательство того, что шаг (2) правильно разбивает множество С, (1С, иа С, и С„оставляем в качестве упражнения. [~ Определение. ДМП-автомат Р Я, Х, Г, 6, д„2„Р) назовем дочитывающим, если для каждой цепочки и Е Х" существуют такие рЕ11 и аЕГ'", что (д„ш, 2,) « — '(р, е, я). Интуитивно, дочитывающим называется ДМП-автомат, способный дочитывать до конца каждую входную цепочку. Лемма 2,28, Пусть Р = Я, Х, Г, 6, д„Х„Р) — ДМП-автомат. Тогда существует эквивалентна»й ему дочитывающий ДМП-автола»п Р'. Д о к а з а т е л ь с т в о. В силу леммы 2.27 можно считать, что для Р всегда возможен очередной такт.

Пусть Р' = Я 1) (р, г), Х, Г, 6', 4„2„Р 0(р)), где р и г — новые состояния, а 6' определяется так: (1) для всех а Е Я, а Е Х и 2 Е Г положим 6' (а, а, 2) = 6 (а, а, 2); (2) для всех ОЕАР и ЛЕГ, таких, что, (д,е,2) не является зацикливающей конфигурацией, положим 6'(а, е, 2) =6(в, е, 2); (3) для всех (д, 2) ЕС„где С,— множество, построенное алгоритмом 2.16, положим 6' (у, е, 2) (г, У); (4) для всех (д, с) ЕС,„где С,— множество, построенное алгоритмом 2.16, положим 6' (у, е, 2) = (р х)' (5) для всех аЕХ и ЛЕГ положим 6'(р, а, 2):=-(»,2) и 6'(г, а, г) =- (, 2). 215 ГЛ.

2. ЭЛЕМЕНТЫ ТЕОРИИ ЯЗЫКОВ УПРАЖНЕНИЯ Таким образом, Р' моделирует Р, на если Р попадает в зацикливающую конфигурацию, то Р' в очередном такте перейдет в состояние р или г в зависимости от того, встречается нли нет в циклической последовательности конфигураций заключительное состояние, Затем, какова бы ни была входная цепочка, Р' переходит в состояние г и остается в нем, ничего не меняя в магазине. Отсюда 1. (Р') ==7,(Р), Надо показать, что Р' — дочитывающий ДМП-автомат. Правила (3) — (б) гарантируют, что условие,дочитываиия" для Р' выполняется, если Р попадает в зацикливающую копфигураци!о. Остается только заметить, что если Р находится в незацпкливающей конфигурации, то через конечное число тактов он должен либо (1) сделать не е-такт, либо (2) попасть в конфигурацию, укорачнвающую магазин. Кроме того, ситуация (2) не может повторяться бесконечно, так как в исходной конфигурации магазин имеет конечную длину.

Таким образом, либо в канне концов произойдет (1), либо после нескольких повторений (2) Р попадет в зацикливающую конфигурацию. Итак, можно заключить, что ДМП-автомат Р' дочитывающий. Г) Теперь докажем одно важное свойство ДМП-автоматов, а именно, что класс распознаваемых ими языков замкнут относительно дополнения. В следующем разделе мы увидим, что для класса всех КС-языков это пе так. Теорема 2.23. Если 7.=Ь(Р) для некоторого ДМП-аотолтата Р, то Е=Е(Р') для некоторого ДМПаетомата Р'.

Док аз а тел ьство. По лемме 2.28 можно считать, что Р— дочитывающий. Построим Р' так, чтобы он моделировал Р н между сдвигами входной головки выяснял, попал ли Р в допускающее состояние. Так как Р' должен допускать дополнение языка А(Р), то Р' допускает входную цепочку, если Р не допускает ее и собирается сдвинуть свою входную головку ,'и, следовательно, уже не допустит ее и позже). Формально пусть Р= — Я, Х, Г, 6, а„Я„Р) и Р'=.(Я', Х, Г, 6', д;, Я„Р'), где (!) ()'=-([Е, 1П1ЕЯ, 1~(0 1 2)) (2) г!',=-[а„, 0], если д,(Р, и д',=[!)„!], если Е„ЕР, (3) Р' — ([д, 2](о~!е). Состояния вида [а, 0] предназначены для обозначения того, гго Р нс был в заключительном состоянии после паследнега не .-такта.

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

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

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

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