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

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

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

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

у рбмк. Пример 7.35. В примере 7.35 мы нашли, что Т,'=Т', и Т;= — Т;. Приведенный автомат для автомата на рис. 7.50 изображен на рис 7.51. Состояния Т~ в Т; выбраны в качестве предсьавптелей двух классов эквивалентности, содержащих более одного элемента. Д Нв определения оп1ошения =- след)ет, что определение приведенного автомата корректно, т.е. правила (2) и (3) определенна ис зависят от выбора представителя класса эквивалентности, Нетрудно также показать, что приведенный п полуприведенный автоматы эквивалентны.

По с)ществу, эти два автомаса всегда будут совершать аналогичные последовательности тактов. Состояние приведенного ЗЗ1омата представляет класс эквивалентности, содержащий соответствующее состояние полуприведенного автомата. Формально это соответствие описано ниже. Теорема 7.13. Пусте М„.-лолулривгденный автомат и М,— соответствующий пригедсниыи автомалц Тогда для гггх 1" Осуи(естгугт талал последовательность То..., Т, Т, что (е, Т„, т, е)! — ' (Т,Т,...Т„, Т, х, и) лгогда и только тогда, когда (е, [Т,], т, е) )-', ([Т,] [Т,)... [Т ], [Т], х, и) гдг Т,— иа«алвнае состояние автомата Мо а [и] обозначает класс эквивалентности, содержащий состояние и. Показательство. Элементарная индукция по 1. Д Следствие.

М, и М„тгщалентнм. 7.5.3. Обобщонме на ьй(й).анапизаторы Каноаичегкий ннализирующий автомат можно построитьтакже и по множеству С)((й)-таблиц для С(((й).грамьзатики с й > О, Здесь мы исследуем случай й=(. Анализирующий автомат в атом случае работает во многом аналогично каноническому анализирующему автоыату для 1(((0)-грамматики, не считая того, что о каисдой таблице в отдельности нельзя сказать, является ли она таблицей переносов, сверток или допускающей таблицей.

Как и ранее, каждой таблице будет соответствовать состояние автомата. Находясь в конфигурации (Т„Т, ... Тл, Т, т, и), автомат действует так: (!) Находит аванцепочку а = Г1ВЗТ (ю). гл. |. методы оптимнзАцин синтаксических Анллизатоаоэ (2) Принимает решение о том, нужно ли выполнить перенос или свертку, т. е.

если Т = <), ду, то вычисляется 1(а). (а) Если 7"(а) =-перенос, то автомат переходит в конфигурацию (Т,Т, ... Т„Т, Т', н|', и), где Т'=д(а) и (б) Ест| 1(а)=свертка 1 и правило 1 есть А а, где )а)=г. О, то автомат переходит в конфигурацию (Т,Т, ... 7'„„„Т', ю, и|), где Т' — й'(А), если Т вЂ” <1", дО. (Если правило имеет вид А а, |о воэнйкает конфигурация |Т,Т,... Т„Т, Т', ю, л|), где Т'=й(А), Т=д, ду.) (е) Если )(а)=допуск или ошибка, то автомат останавливаегся и сообщает, что входная цепочка либо допущена, либо отвергнута. Можно по-разному расщепить состояния автомата так, чтобы операции с магазиНом оказались выделенными, имея при этом в аиду слить в дальнейшем общие операции.

Здесь мы изучим следующую схему расщепления состояний. Пусть Т вЂ” состояние, соответствующее таблице Т = ч Е В и Расщепям его иа состояния чтения, заталкивания, выталкивания н опроса: (1) Образуем состояние италия Т, в котором считывается следующий входной символ. (Состояния чтения изображены на рисунках кружками.) (2) Если 1(а) = перенос, образуем состояние заталкинаиил Т' и проведем дугу, помеченную сиыволом а, из состояния чтения Т в это состояние заталкивания. Если д(а) = Т', проведем непомеченную дугуйиз Т" в состояние чтения Т'.

Состояние заталкивания Т' имеет двойной эффект. Вкодной символ а удалкетси из входной цепочки, и имя таблицы Т заталкивается в магазин. (Состояния заталкивания изображены на рисунках квадратами.) (3) Если )ч(а) = свертка 1, образуем состояние ааалилкиаания Т, и состояние опроса Тт Из Т в Т, проведена дуга, иомеченная символом а. Если правило | есть А — а, то в состоянии Т, из магазина удаляются верхние )а) †! символов и порождается номер правила 1. Если а.=е, то в состоянии Т, в магазин помещается имя исходной таблицы Т. (Состояния выталкивания изображены треугольниками.) Затем из Т, в Т, проведем непомеченную дугу. В состоянии Т, выясняется, какой снмвол находится в данный момент в верхушке л|агазина. Если СОТО *(Т,а) сол|ржит Т', а СОТО(Т', А) = Т", проведем из Та в состояние чтения Т дугу, помеченную символом Т'.

(Состояния опроса также изображаем кружками. Метки на дугах отличтот эти состояния от состояний чтении.) |з лиллизиуую|цне Азтомлты Таким образом, если 1(а)=перенос и 1(Ь)=свертка |, то состояпие Т будет выглядеть так, как показано на рис. 7.52. (4) Состояние допуска не расщепляется. аатлалнаа читал анталии чтнлнайннл Гаатллнла ааталнлааннл Та т| аис. 7ЛП Маажас аа |.К(|)-таблин Анализирующий автомат, получающийся в результате применения оцнсанной выше процедуры расщепления состояаий, изображен на рис. 7,54. (д Лис Т.ЗЗ. Вааиажч|аа Пример 7.37.

Рассмотрим (1) (2) (3) (4) (5) Множество Ы(1)-табли|т лля Дайатйал а Ь а предстал.|Лина сае|ааииа Т. ЕК(1)-гралгматику с правилами В АВ А. аАЬ А и В ЬВ В- Ь С приведено на рис. 7.53. Т)ад анну В А В а Ь т.а лнализиоующис автоматы Рос. 7 55 Палуеэиаедеемееа аатомат.

133 гл. т. мщоды гаптимизщгии синтаКсических лнллизатооов Рос. 754 Раещеолееема аотомат гще 1РП)- реаематщем. Число состояний расщепленпога автомата для Е)1(1).гратгматики моигно уменьшить несколькима способами: (1) Если из состояния опроса иыходит только одна дуга, это состоннио опроса можно выбросить. Это уира~ценно в точности аналогично соотве1ствующсму Е)1(О)-упропгению. (2) Пусть Т вЂ” ~акое состояние чтения, что а каждом ну~и, ведущем в Т, последняя дуга, входящая в состояние аыгалки. ванна, всегда помечена одним и тем же входным символом или символом е. Тогда состояняе чтения можно исключить. (Можно видеть, что в этом случае сосаояние выталкивания имеет только одну исходящую дугу и она помечена этим символом.) Приыер 7.58.

Рассмотрим автомат, показанный на рис. 7.54. У него три состояния опроса со степенью по выходу 1, а имен. Но тало но Т„'Т; и Т;. Эги состояния и исходящие нз них дуги можно выбросить. Исследуем состояние чтения Т,. В состояние Т„ можно попасть только по путям, выходящим из Т, и Т; нли из Т„ и Т; В обоих случаях меткой предыдущего входного символа служат Ь, т. е. если в состоянии Т„ или Т, на входе появляется Ь, то автомат переходит в состояние Те или То для выполнения свертки. Символ Ь остается во входной пепочне до тех пор, пока ГЛ 7 МЕТОДЫ ОПТИМИЗАЦИИ СИНТАКСТ!'7ЕСКИХ АНАЛИЗАТОРОВ 7! АиАлизиггккциа АзтомАты автомат, находясь в состоянии ТО не прочтет его к не решит перей7и в состояние Т'„ для выполнения переноса.

Так как известно, что Ь на самом деле появляется ва входной цепочке, состояние Т, лишнее, в состоянии Т," автомат может поместить нмя состоянйя Т, в магазин, не считывая следующего входного символа, так как если автомат достиг состояния Тм то этим входным символом должен быть символ Ь Лналопщно можно исключить состояние Т,. Полученный а результате автомат показан на рнс.

? 55. Как н в случае полупркведеиного ЕК(0)-автомата, можно слить совместимые состояния, не затронув поведения автомата. Предоставляем читателю рассмотреть этот вопрос самостоятельна. На рнс. 7.55 можно слить только пару Т; и Т,', умцд. Обзор содержания главы В этой главе мы изложили ряд ме>адов, применяемых для уменьшения размера н повышения скорости работы синтаксических анализаторов. Как же нужно действовать при построении аналнзатора лля данной грамматики с ~очки зрения всех предоставляемых возможностей? Во-первых, надо принять рещение о том, какяы методоы разбора воспользоваться — восходя>цнм нлн нисходящим. Соответствующее решение прнннмаетсл в зависимости аг того, какой перевод нужно получить.

Этот вопрос мы рассыотрим з гл. 9, Если удобно воспользоваться ннсходящлм анализатором, то рекомендуется Щ()-анализатор. Для построения такого анализатора требуется проделать следующее: (1) Преобразовать грамматику н ЕЕ(1)-грамматику. Исходная грамматика очень редко оказывается Щ!)-грамматикой. Основныын средствами такого преобразования служат левая факторнзацля и исключение левой рекурсии, но гарантировать, что эти преобразования обязательно приведут к успеку, нельзя. (См. примеры 5.10 л 5.11 в томе !.) (2) Если же удается получить эквиваленты>ю Е!.(!)-грамматику С, то с помощью ыетодов равд. 5.1 (в частности, с помощью алгоритма 5.!) легко построить для С Щ1)-таблицу разбора.

Элемелтами втой таблицы на практике будут обращения к программам, которые опериру7от с магазином, генерируют выходную цепочку или выдают сообщения об ошибках. (3) Для уменьшения размера таблицы разбора прнменяюгся два метода: (а) Если правило начинается с терыинального символа, то этот терминальный символ нет необходиыоств помещать в магазин, если входной указатель перемещается. (Другнын словами, еслл нужно воспользоваться правилом А аа и а — текущий входной сяывол„то а номен!аггея в магазин, а входная головка сдвигаегся на азнп символ вправо.) Этот метод позволяет уменыпнть число различных оямаа. лаа, появляющихся в магазине и, следовательно, число строк н ЕС(1)-таблице разбора.

(б) Некоторые нетгрмнналы с аналагичньин действиями разбора можно объединить в один нетсрминал с „нндика. тором", указывающим, какой негермнпал оп представляет. 1акому объединению легко поддаются нетерминалы, представляющие выражения. (См. упр. 7.3.23 и 7.3.31.) Если >добно воспользоваться восходящим апа.тизаторам, то рекомендуется детерминированный алгоритм разбора типа „перенос- свертка", такой, как 5ЕК(1)-анализатор яли ЕЛ(.К(1)Саналязатар. Синтаксис болыпинства языков программправання легка описать с помощью ВЕК(1)-грамматики, так что предав.

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

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

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

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