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

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

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

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

Для проведения шага индукции прсдположиы, что утверждение [7,3.1) верно для 7. Докажем, что оно верно для т+!. Так как множество дт 7р.не. достижимо, действия таблиц Т и Т' на Е!((5ТА(х) совпадают. Пусть это общее действие — пе!мнос, а — дервый символ цепочки х и элемент перехода таблицы Т на и есть Т. В соответстнни с алгоритмом 7.7 и определением совместимого разбиения переходам таблицы Т' иа п будет Т' тогда и только тогда, когда Т' — представитель содержащего Т блока разбиения П.

Если действие — свертка по некоторому правилу с г символамн в правой части, то, сравнивая таблицы Т ,и Т„', „ убеждаемся, что утверждение верно для 7 + 1. Для доказательства достаточности п>жно только заметить, что, если в Т' у функции действия для цепочки Р1257(х) стоит элемент, ОгЛичный От 7Р, таблица Т' должна соаиадатЬ С Т, поскольку множество Р 37-недостижимо. Итак, алгоритм 7.7 сохраняет эквивалентность в самом сильном смысле. Анализатор, использующий два таких множества таблиц, всегда вычисляет очередные конфигурации за одно и то же часло шагов независима от того, имеет ли входная цепочка р.7збор. УЗ.5. Отсрочка В обнаружении ошибок Наш основной метод улгеньшепия множества СД(й)-таблиц должен сливать таблицы всегда, когда это возыажно.

Однако дзе таблипы люжно слить в одну только тогда, когда они совместимы. В данном разделе мы обсудилг метод, применяемый для замены в некоторых таблицах существенных элементов ошибка элементами свертка с тем, чтобы >вели гить число совместимых пар таблиц в множестве С(((й)-таблиц. В качестве примера расслютрим таблицы Т, и Ти, приведенные на рис. 7,25, Для удобства представим их функции дейст- Т.л пРеОВРлзовлния нА мнОжестВлх сии! тлэлиц вия отдельно в виде рис. 7.25(а).

Если изменить действие таблицы Т, ва аванцепочке ) с ошибки на свертку 6 и действие таблицы Т„иа аваипепочке Р с ошибки па свертку 6, то Т, и 7',т станут совместимыми и можно будет слить их в одну таблицу. Однако, прежде чем вьшолнять такие замены, хотелось бы удостовериться, что ошибки, Обнаруживаемые таблицей Т, на ) и таблицей Т„на Р, будут обнаружены па одном из послед>ющнх шагов перед операпией переноса. В этом разделе ыы пал>чиы ДЕРРИРРЕ Т777 Рас 7 ТВ(л> условия, при которых мокно отсрочить обнаружение о7пибки, не изменив позицш7 по входной цепочке, в которой С)((й)-анал77затар сообщает об ошибке.

В частности, леюсо показать, что а каноническом множестве таблиц л7обан такая замена допустима. Предположилг, что Ер(й)-анализатор находится В конфигурации (Т„Х,Т,... ХАТ„, ш, и) и действием таблицы Т„на аванцепочке и=РП(5Т„(ш) служит ошибка. Предположим далее, что этот элемент ошибка замепиется в Т иа свертку р, где р — помер правила А У, У,. Эту ошибку впоследствии можно обпарумнть двуми способачи.

При свсртке из магазина удалшотся 27 сичволов и управление передается таблице Т„ ,. Если у функции переколов таблицы Т, символу А Отвечает элемснт й7, то можно сообщ>пь об ошибке, заменив 27 элелгентом ошибка. С другой стороны, символу А у функции переходои таблицы Т, может соответствовать некоторая таблица Т. Если действием таблицы Т на аванцевочке и служит ошибка или элемент 7р (ксггорый можно заменить на ошибку, чтобы сохранить свойство й7-77едостижилгостгг), 7о 7лоапш обнаружить огпибку и иа этой стадии. Удастся обнар>- жить ошибку и в том случас, когда действисч таблицы Т иа аванпепочке и будет свертка р' и описанный выше пропесс повторится. Короче говоря, мы хотим, чтобы таблицы, которые становятся управляющими после свертки по правилу р, не вылы.

вали на аванцепочке и переноса (нли допуска). Заметим, 7то для того, чтобы заменить ошибку на свертку, нам приходится во всей широте использовать определение эквивалентносю7 множеств 12(й)-таб.77777. При разборе с новым множествоч таблпп последую>дне конфигурации ыогут Вычисляться Ьз В А.ААР.ДВ.Р7 л.сэ ~л, г. матоды оптимизлпии синтаксических лнллизхтогов 3 пгсаагхзавхния ил ьгножкстзэх ья(ептлвлиц на несколько шагов позже, чем при разборе с помощью старого множества, но входные символы цри этом считыватьсн ие буд>т.

Чтобы описать условия, при которых допустима такая замена, нужно для любой таблицы, появляющейся при разборе в верхушке магазина, знать, какие таблицы могут встретиться в магазине в качестве (г-1- 1) й таблицы сверху. Определим сначала три функции на таблицах и цепочках символов грамматики. Определение. Пусть (4Г, Т,) — множество Е)(()г)-таблиц для грамматнки 6=.(Н, 2, Р, В). Расширим область определения функции (зОТО из равд. 5.2.3. Функция СОТО отображает м' Х()4 В 2)* в й следующим образоьс (1) СОТО(Т, е) =Т для всех Т нз,Т. (2) Если Т= <Ей>, то бОТО(7', Х) =й(Х) для всех Х из Х () Е иТизй.

(3) ГзО'ГО(Т, иХ) = СОТО(БОТО(Т, а), Х) для всех а из (7( В 2)* и Т нз Т. Вешл таблицы Т нз ('", Т„) будем называть такое наиболь. шее число г, что если СОТО(Т,, и)= — Т, то )а)) г. Нам придется также пользоваться функциеи СОТО ', „обрат. ной" к СОТО. Она отображает множество Я х (Х () Е)* в множество всех подмножеств множества й. Положим СгОТО *(Т, и).—..(7") бОТО(Т', а) =- Т).

Наконец, определим функцию КЕХТ(Т, Р), где ТЕ ", а ив номер правила А Х, ... ХР (1) Если вес таблицы Т меньше г, то )чЕХТ(Т, Р) не определено. (2) Если вес таблицы Т пе меньше г, то р)ЕХТ(Т, Р) =-(7") существуют такие Т" Е эт и и Е(Х() 2)', что Т" Е СОТО-'(Т, и) и Т' — СОТО(Т", А)).

Таким образом, БРЕХТ(7', Р) дает все таблицы, которые могут стать управляющими после Т, если Т находится в верхушке магазина и вызывае~ свертку но правилу р. Заметим, что не требуется', чтобы верхними г символами л~агазина были Х,...Х,. Единственное требование: чтобы в магазине было пе меньше г символов. Если таблипы канонические, можно показать, что среди всех цело мк длины г множество СОТО '(Т, а) будет неп>етым только для и=-Х,... Х,.

В качестве упражнений (см. конец равд. 7.3) предлагаем >становнп некоторые алгебранческнесвойства ф)нкцийбОТО в)(ГХТ. Функция СОТО для множества !.)1(й)-таблиц хороню описывается с помощью помеченного графа. Вершины графа СОТО помечены ююнанн табтиц, н еслн СОТО(7'о Х) =-Т,, то из вершины, почеченнои Т„в верши»у, помечснн>ю Т, проведена дуга, помеченная Х. Следовательно, если БОТО(Т, Х,Х,, Х,) — -Т', та сущесгвтет такой путь из вершины Т в вершину ТС что метки дуг, составляющих этот путь, образуют цепочку Х,Х, ...

Х,, Вес таблицы Т можно интерпретировать как длину кратчайшего пути пз Т, в Т в ~ рафе СОТО. По графу БОТО легко вычисляется функция 5)ЕХТ. Для того чтобы найти НЕХ'ЦТ, г), где правило с номерам 1 есть А Х,Х,... Х„найдем в графе БОТО все такие вершины Т", что нз Т" в Т проходит путь длины г. Затем для каждой такой вершины Т" включим БОТО(Т", Л) в 5)ЕХТ(Т, г). Пример 7.20. Граф СОТО для множества таблиц рис. 7.25 приведен на рнс. 7.27.

Из это~о графа получаем, что СОТО(Т„(Г)) =.Тм, так как СгОТО(То ( ) = Т„СОТО(То Е).=Т, и (ТОТО(Т„,)) =Ты. Таблнпа Т, имеет вес 2, поэтому ЫЕХТ(Т„, 5), где правило 5 есть Р- (Е), нс определено. Вычислим теперь >(ЕХ((Т„,5). Путь длины 3 в Т,.„выло. дит только из трех таблиц, а именно из Т„7', и Т,. Поэтому И>ТО(Т„Р) = Т„БОТО(Т„Р) =- Т„и СОТО(Т„Р) = Тм, так что В)ЕХТ(Тм, 5)=(Т„7'„). ьз Дадим теперь алгоритм, преобразующий вьггедастижимае множество таблиц так, чтобы некоторые ошибки обваруживалвсь позже во времени, но на том же месте входнои цепочки. Наш алгоритм не будет самылг общим, но из пего будет ясно, как асуществля~отся и более общие преобразования.

)бы будем заменять некоторые элементы ошибка и элементы В у функний действия па элементы свертка. Для каждого изменяемого элемента мы точно определяем правило, ко~орое н>жно применить при новой свертке. Допустимые замены образуют так называемое множество отсрочки. Каждый элемент множества отсрочки представляет собой тройку (Т, и, г), где Т вЂ” имя таблицы, и — аванцепочка и г — помер правила.

Элемент (Т, и, 1) указывает, что нужно изменить действие таблицы Т па авапцепочке и на свертку Е Определение. Пусть (м, Т,) — множество Е)1(й)-табтгиц для грамматики С == (Х, 2, Р, 3). Назовем подмножество ГР множества Р хх*ьхр лиожествозг отсрочки длл (я, т,), если удовлетао. Ряются следующие >славия Если (Т, и, г) Е У и Т=. (Д й>, то (1) )(и) --ошибка или йг; (2) если правило( есть А-ьи и Т =СОТО(Т„()), то а — суффикс цепочки )); (3) нет такого правила Р, что (Т, и,)') также пришщлежит У; (4) если Т' Е ЫЕХТ(Т, 1) и 7" = <)',й)>, тоД (и)=.ошибка или гг.

э' ,ау Рнс. 7.27. Грзф СОТО. ГЛ Т. МЕТОДЫ ОПТНМИЗАГГИИ ГИНТАЧСИЧЕГКИХ АНАЛИЗАТОРОВ Условие (1) утверждает, что на свертку залгеняются только элементы ошибка и ср. Условие (2) гарантирует, что свертка по правилу 1 возможна только тогда, когда в Верх)шке магазина находится пеночка ос Условие (3) обсспечирает однозначность, а (4) означает, чта свертки, вызванные паявлеяием дополнительных сверток, в ковегном итоге будут проделаны без переносов. Т Э ПРЕОВРАЗОВАНИЯ НА МНОЖЕСТВАХ СИФРТАВЛИЦ Па поводу условия (4) заметим, что (Т', и, 1) также может входить в РД Б этом случае значение /'(и) также будет изменено с ошибки или гр на свертку ). Поэтому, прежде чем будет выдано сообщение об ошибке, Возможно, придется выполнить последовательно несколько сверток.

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

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

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

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

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