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

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

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

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

Так как 5Е(„, А Е1„и А — 5А — четвертое правило, то реп (2, 4, А) выдаст 4 и вызовет реп (2, 1, 5), а затем реп(3, 3„А). Продолжая в том же духе, получим левый разбор 164356263. Заметим, что 6 — неоднозначная грамматика; в самом деле, цепочка аЬааЬ имеет более одного левого разбора. В общем случае нельзя по таблице разбора получить все разборы входной цепочки за менее чем экспоненциальное время, так как у нее может быть экспоненциальное число разборов.

Заметим, что алгоритм 4.4 можно сделать более быстрым, если при построении таблицы разбора помещать указатели в те элементы, которые приводят к появлению новых элементов (см. упр. 4.2.21). 4.?.?. Алгоритм Эрлн В этом разделе мы изложим метод синтаксического анализа, позволяющий для произвольной КС-грамматики разобрать входную цепочку за время 0(п'), использовав при этом емкость памяти 0(па), где п — длина входной цепочки. Кроме того, если грамматика однозначная, то время квадратичное, н для большинства грамматик языков программирования алгоритм можно модифицировать так, чтобы время и емкость стали линейпымп функциями от длины входной цепочки (упр.

4.2.18). Сначала мы неформально опишем основной алгоритм, а потом покажем, что вычисление можно организовать так, что получатся указанные выше границы сложности. Основная идея алгоритма состоит в следующем. Пусть 6= (Я, Х, Р, 5) — КС-грамматика и ц ==а,а,... а„— входная цепочка из Х'. Объект вида [А — Х,Х, ... Х„Х„, ... Хм. 1) на- 35В Ч 2. ТАБЛИЧНЫЕ МЕТОДЫ СИНТАКСИЧРГКОГО АНАЛИЗА зовемситуаь(ией,относящейсякцепочке п2, если А — Х;...Х правило из Р и 0(~' =.п. Точка между Х„и Хе„является метасимволом, не припадлсжащим пи Гч, ни Х.

Число й может быть любым целым числом от нуля (в этом случае точка — первый символ) до т (в этом случае она — последний символ) '). Для каждого 0(1(н мы построим такой список ситуаций 1, что [А я4 1) принадлежит 1; для 0«=1(1 тогда н только тогда, когда для некоторых у и б существуют выводы 5=>'уАб, у=эча, ...

а, и а=>ааа„, ... а,. Таким образом, между второй компонентой ситуации и помором списка, и котором она появляется, заключена часть входной цепочки, выводимая из а. другие условия, налагаемые иа ситуацию, просто гарантируют возможность применения правила А — ар в выводе некоторой входной цспочки, совпадающей с ьп до позиции 1. Последовательность списков 1„1„..., 1„будем называть тсасио.~ разбора для входной цепочкй ю.

Заметим, что п2 принадлежит 1 (6) тогда и только тогда, когда в 1„есть ситуация вида [5 а, О). Опишем алгоритм, который по произвольной данной грамматнке порождает список разбора любой входной цепочки. А л г о р н т м 4.5. А л г о р и т и Э р л и. Вход. КС-грамматика 6 -= (и)„Х, Р, 5) и входная цепочка щ=-а,а, ... аа из Х*. Выход. Список разбора 1„1„..., („для Пеночки ьн, Метод. Сначала строим 1,: (1) Если 5 — а — правило из Р, включить в [5 — .Те, О[ в 1,. Далее выполнять шаги (2) и (3) до тех пор, пока в 1, можно включать новые ситуации. (2) Если [В у, О) принадлежит 1,'), включить в 1, ситуацию [А — ееВ 6, О) для всех [Л ее В)), О), уже принадлежащих 1,. (3) Допустим, что [А- се В6, 01 принадлежит 1„. Для каждого правила, из Р вида  — у включить в 1, ситуацию [В у, О[ (если она еще не там).

После того как построены 1„1„..., 1,, строится 1~. (4) Для каждой ситуации [ — сс а~, (~ из 1, „для которой а=а~, включить в 1 ситуацию [В- аа 6, 2). Далее выполнять шаги (5) н (6), пока в 1, можно включать новые ситуации. (5) Пусть [А — а °, 21 принадлежит 1,. Искать в 1; ситуации вида [В а Ар, й]. Для каждой из них включить в 1, ситуацию ~а- а.а, ьь 2е ~ » А, бу 1.'~ —,им ') Заметим, что Т может быть е. Таи начипастси применение правиаа (Э), 359 ГЛ, в, ОБщие метОды синтаксическОБО АИАлиза (6) Пусть [А а В[), 1] принадлежит 1,.

Для каждого В- у из Р включить в 1, ситуацию [ — у, 1]. Заметим, что рассмотрение ситуации, в которой справа от точки стоит терминал, на шагах (2), (3), (5) и (6) не дает новых ситуаций, Итак, алгоритм состоит в построении 1Р для 0(1 " п. Пример 4.10. Рассмотрим грамматику 6 с правилами (1) Š— 7+Е (2) Š— Т (3) Т вЂ” Рат (4) т-Р (6) Р-(Е) (6) Р и и входную цепочку (а+а)аа. На шаге (1) включаем в 1, ситуа. ции [Е- Т+Е, О] и [Е= Т, О]. Рассмотрениеэтих ситуаций приводит к включению в 1, посредством шага (3) ситуаций [Т вЂ” .Рат, О] и [т Р, 0].

Продолжая этот процесс, добавляем [Р ° (Е), О] и [Р- а, 0]. Другие ситуации уже нельзя вклю- чить в 1,. Теперь построим 1,, По правилу (4) включаем [Р— ( Е),0], так как а,— -(.Тогда правило (6) позволяет включить [Š— Т+Е,]~, [е- т', ц', [т- Р:. т, ц, [т- Р, ц, [Р-.(е), ц' ' [Г а, Ц. Теперь в 1, уже нельзя включить новые ситуации. Чтобы построить 1,, заметим, что а,» — -а и по правилу (4) ситуацию [Р- а., Ц нужно включить в 1,. Затем по правилу (6) рассмотрим эту ситуацию, перейдем к списку 1! и поищем в исм ситуации, в которых Р стоит непосредственно справа от точки. Две такие ситуации найдутся, и мы включим [Т Р аТ, Ц и г,т — Р, Ц в 1,, Рассмотрение первой из них не дает ничего, а вторая заставляет обратиться к 1, в поисках ситуаций, содер- жащих Т.

Еще две ситуации [Е- У ° +Е, Ц и [Š— Т, Ц включаются в 1,. Снова первая не дает ничего, а вторая при- водит к включению [Р— (Е ), 01 в 1,. Теперь никакие ситуа- ции нельзя включить в 1„так что список завершен. Содержимое всех списков приведено на рис. 4.9. Так как ситуация ]Е- 7, О] включена в последний список, входная цепочка (а+а) в а принадлежит Ь (6). При анализе алгоритма Эрли мы будем действовать по сле- дующему плану.

Сначала докажем корректность упомянутой ранее неформальной интерпретации ситуаций. Затем покажем, что если грамматика 6 однозначная, то при разумном понятии элементарной операции время выполнения алгоритма квадра- тично зависит от длины входной цепочки. Наконец, покажем, как по списку разбора построить разбор и фактически как это сделать за квадратичное время. 340 Рас. 4.9, Списки разбора дая примера 4.10.

ва [Е ° Т+Е, О! [Е ° Т, О[ [т — Рат, О! [Т ° Р, О! [Р «Е), О] 1Р— - ° а, 0] )в [Š— Т+ Е,Ц [Р т+е, з[ [Р— т, з! ]т — .Р.т, 31 (Т вЂ” ».Р, 3! [Р— -» «Е), 3[ [Р» а, 3! )в 1Т Ра Т,О] [Т вЂ” ».Рвт, 6! [т Р,6[ [Р— » «Е), 6! [Р— » а,б] I! [Р (Е),61 [Е .Т-«-Е, ц т,ц [т-- Рат, Ц «Т — » Р,Ц [Р— » «Е), Ц [Р— »а,Ц вв [Р—,, з] [т Р"в т, З1 [т — Р., з] [Е --» Т +Е, 3[ [Š— »Т, 3! т-ре., ц [Р «Е),О! у! [Р 1.

а., 6) [Т вЂ » Р а Т, 6] [т Р., 6] [т Р'т., О! [Е Т ]Е,О1 [Е т., О] вв [Р— »а, Ц [т Р. т,ц «т Р.,ц [Š— Т. +Е, Ц [Š— »Т, Ц [Р— [Е.) О! в'5 [Р (Е), 01 [Т вЂ” Р вТ, О] [Т вЂ” »Р, 61 [Е т+Е,О1 [Š— » Т., О] ГЛ. >. ОБЩИЕ МЕТОДЫ СИНТАКСИЧГСКОГО АНАЛИЗА 4 2. ТАБЛИЧИЬШ МБТОДЫ СИНТАКСИЧЕСКОГО АНАЛИЗА Теорема 4.0. В списке разбора, построснног> алгоритмом 4,5, [А -- и р, >] принадлгжит 1 тогда и п>олько тогда, когда >х=.>'а>„...

ат и существуют такис цепочки у и д, ч>по 5=>'уА6 и у=>'и, ... аи До к аз а тел ьств о. Необходиг>ость. Зту часть теоремы докажем индукцией по числу ситуаций, которые включаются в 1„, 1„..., 1, до того, как в 1т включается [Л вЂ” а [1, >]. Для доказательства базиса (здесь это будет 1,) заметим, что а=>" с для каждой ситуации, включенной в !„так что 5=>" уА6 при у — с. Для доказательства шага индукции допустим, что список 1, уже построен и предположение индукции верно для всех ситуаций, включенных в списки 1; при >Б.1'. Пусть [А — а р, 1] включается в 1, по правилу (4). То>да а=и'а> и [А — а' аур, >] входит в 1,, По предположению индукции й'=>" а».>...

а, и существуй>т такие цепочки у' и 6', что5=-.'>'у ЛЬ' и у' >'а,...а;, Отсюда следуст, что и = >х'а~ — >*а;,, ... и, и нужное утверждение выполняется при у=у' и 6= 6'. Пусть теперь [А — а (1, >"1 включается по правилу (5). Тогда >Б- >х'В для некоторого В61з' и [А- м' Вр, >] входит в 1А для некоторого >г. Кроме того, [В т), й] входит в 1, для некоторой цепочки >1 Е ()Ч 1) Х)'.

По предположению индукции >1 =.>' аА„, ... ат и а' =.>'а>„... а„. Поэтому а =а'В =.>*о;, ... а,. В силу того же предположения существуют такие у' и 6', что 5=>*у'АЬ' и у'=>" а, ... ан Остальная часть нужного нам утверждения выполняется опять при у =у' и 6=ЬГ. В последнем случае, когда [А — >х [>, >] включается по правилу (6), а —.-с и > — 1. Злемептарную проверку нужного утверждения предоставляем читателю, так что первую часть теоремы считаем доказанной.

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

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

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

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