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

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

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

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

Достаточность. Зта часть состоит в доказательстве утверждения (4.2.1) если 5=>'уАЬ, у=>'а, ... ао Л вЂ” О4) принадлежит Р и м =>*а;„... а,, то [А- а 11» ] включается в список 11 Утверждение (4.2.1) надо доказать для всевозможных значений входящих в него параметров. Каждый набор параметров состоит из цепочек а, Ь, у и 6, нетермипала Л и чисел >' и 1, так как 5 и а, ... а„фиксированы. Обозначим такой набор [и, р', у, 6, А, >', 1], Заключение, которое нужно получить для этого набора, состоит в том, что [А — а (1, 1] включается в 1;.

Заметим, что в этом утверждении у и Ь пе фигурируют явно. Введем понятие ранга набора параметров и проведем доказательство индукцией по рангу. Ранг набора 7 [>х, р, у, Ь, А> >, 1] вычисляется следующим образом: Пусть т (7) — длина кратчайшего вывода 5=>*уАЬ, т, (7)— длина кратчайшего вывода у~'а> ...

а>, т,(7) — длина кратчайшего вывода а=о'а> > ... а,. Тогда ранг набора,7 равен т, (7) + 2 [/+ т> (7) + т> (7)]. Теперь докажем (4.2.1). Если ранг набора Я =- [а, (1, у, 6, А, >, 1] равен О, то т, (2)--т,(7) — т,(7) =1'=О. Отсюда и=-у= 6 — с и А=5. Тогда нУжно показать, что [5 1т, О] входит в 1,. Однако это сразу следует из правила (1), так как правило 5 †.[) должно принадлежать Р. Для доказательства шага индукции предположим, что набор параметров 7 для утверждения (4.2.1) имеет ранг Г > О и (4.2.1) верно для наборов с меньшими рангами. Рассмотрим отдельно три случая, связанные с тем, что а может оканчиваться терминалом, нетерминалом и быть пустой цепочкой.

Случай 1: >х -- >Б'а для некоторого а Е Х. Так как а =>'а;„...а,, то а — а,. Рассмотрим набор,7' — [а', аф, у, 6, А, >, 1 — 1]. Так как А — и'йт[1 принадлежит Р, то 7' служйт набором параметров для (4.2.!) и его ранг, как легко видеть, равен à — 2. Отсюда следует, что [А — а' а>6, >] входит в 1,. По правилу (4) ситуация [А и р, >] будет помещена в 1Р Случай 2: а=-и'В для некоторого ВЕ)з.

Существует такое число >(Й(1, что с>'=>*а», ... аА и В=>" а„„... а,.Исследуя набор,7'.— [и', В1>, у, 6, А, >, й] меньшего ранга, заключаем, по [А а' В(7, >'] входит в 1А. Пусть В=О>1 — первый шаг в кратчайшем выводе В=>" а„,, ... а,. Возьмем набор 7"=-[>), г, уа', 1ЗЬ, В, й,)(. Так как 5=>'уАд=>уа'Врб, то т,(7")(т>(7)+1. Пусть и,— минимальное число шагов вывода а'=>" а;„... аА и п,--минимальное число шагов вывода В~*аА >...

а,. Тогда т,(7)==н>+н,. Так как В=э>т)=>*аА,... иэч то тя(7")=н„— 1. Легко видеть, что т,(7")=-т>(7)+п,. Следовательно, т>(7")+ т,(з")=ТБ(7)+н>-) п,— 1=Т,(7)+т,(7) —.1. Таким образом, т>(7")+2[/+т,(0")+т„(7")] меньше Г. По предположению индукции для 7" заключаем, что [ — т) °, й] входит в 1тч и так как [А- >х' В[), >] входит в 1„, то по правилу (2) или (5) [А — а 6, 1] включается в 1Р Случай ск >Б=с.

В этом случае можно считать, что >'=1 и т> (Э) = О. Так как Г > О, то длина вывода 5=>'уА6 больше нузя. Если бы оиа равнялась нулю, то было бы т,(7) = О, а тогда у=с, так что т,(7)=">'=-О. Поскольку в этом случае, как Уже отмечалось, > =1 и т,(7) =-О, то было бы Г=О. Итак, можно найти ВЕН и такие цепочки у', у", Ь' и 6" из ЛИХ)', что 5=>'1'ВЬ'=>у'у"Аб"6', где В- у"АЬ" принадлежит Р, у=у'у", 6=6"Ь' и у'Вб' — результат предпоследнего шага кратчайшего вывода 5 =>'уАЬ.

Возьлтем набор б' — [у", ЛЬ", У, 6', В, )г, 1], где й — такое число, что у'=>" а, ... аА и у'>* ОА+,, а, Пусть наименьшие длины указанных выводов равны 363 ГЛ, 4. ОВЩИЕ МЕТОДЫ СИНТАКСИЧЕСКОГО АНАЛИЗА СООтВЕтСтВЕННО П, И и,. ТОГда Т,(З') =ли„тг(О') -=Пг И Тл(О) = п, + и,. Мы уже убеднлнсь, что т, (У) =-О, а В, у' и 6' выбраны так, что тг(д') =-т, (д) — 1. Поэтому ранг набора д' равен г — 1.

Таким образом, [В- у" Аб", й| входит в 1,. По правилу (5) или (3) ситуация [А — (1, /1 будет включена в 1/. (л Заметим, что в качестве частного случая теоремы 4.9 мы получаем, что [5 — а, 01 входит в /л тогда и только тогда, когда 5 — а принадлежит Р и а =>*а,... а„, т. е. а,... а„принадлежит 1. (6) тогда-и только тогда, когда [5 — а, 01 для некоторой цепочки а входит в 1„.

Теперь исследуем вопрос о времени работы алгоритма 4.5. Читателю предоставляем доказать„ что вообще для разбора любой цепочки длины п в произвольной заданнон грамматике достаточно 0(гг') подходящим образом определенных элементарных шагов. Мы докажем сейчас, что если грамматика однозначная, то достаточно 0(п') шагов. Лемма 4.6. Пусть 6 = ()х), Х, Р, 5) — однозначная КС-грамматика и а,, ал — иепочка из Хл.

Тогда при вьтолнении алгоритма 4.5 мы пытаемся включить [А — сг !3, 11 в 1, не более одного раза, если гг~е. Доказательство, Ситуацию [А — а !1, г'1 можно включить в 1/ только на шагах (2), (4), или (5). Если она включается на шаге (4), то последний символ цепочки а — терминал, а если на пгагах (2) или (5), то — нетерминал. В первом случае результат очевиден. Во втором случае допустим, что [А а'В 6, 11 включается в 1и когда рассматриваются две различные ситуации [В- у °, й1 и [ — 6, 11. Тогда ситуация [А а' ВР, 1[должна оказаться одновременно в 1 и в 1, (возможно й — — 1). Допустим, что /г~/. По теореме 4.9 существуют такие О„ О,„О и О, что 5=>'О АО =ггО а'В[10 => а„...

а„и 5=Ф О АО =м О„а'Вэр04=~'аг... а„. Но в первом выводе Ога'=гулаг... а, а во втором Ола' =>'а,... а,. Тогда для цепочки а,... а„существуют два разных дерева вывода, в которых аи„,... а, вьшодится из а'В двумя разными способами. Пусть й =1. Тогда должно быть уча 6. Снова для цепочки а,... ал легко найти два различных дерева вывода. Детали доказательства оставляем в качестве упражнения. Д Изучим теперь сложность алгоритма 4.5. Определение „элементарной операции" этого алгоритма предоставляем читателю. Решающий момент в доказательстве того, что алгоритм 4.5 имеет квадратичную временную сложность, состоит не в том, как определить „элементарные операции", — подойдет любое разумное множество основных операций, применяемых при обработке списков, Главное здесь связано с организацией „бухгалтерии" для 4Л.

ТАЕЛИЧНЫЕ МЕТОДЫ СИНТАКСИЧЕСКОГО АНАЛИЗА учета всех затрат времени. Грамматика 6 предполагается фиксированной, так что обычные операции с ее прав11лами и символами можно считать элементарными. Как и в предыдущем разделе, вопрос о зависимости нрсмени от „объема" грамматики оставляем в качестве упражнения. Шаг (1) для /„ можно, очевидно, проделать за фиксированное число элементарных операций. Шаг (3) для /, и шаг (5) в общем случае можно проделать за ограниченное число элементарпых операций каждый раз, когда рассматривается очередная ситуация, при условии, что мы следим за ситуапиями [А — а Р, 11, уже включенными в 1. Так как грамматика 6 фиксирована, эту информацию можно хранить для каждого / в конечной таблице.

Тогда ист необходимости просматривать весь список 1, чтобы узнать, находятся ли уже в нем эти ситуации. Иа шагах (2), (4) и (5) включение ситуаций в 1 произойдет в том случае, если удастся отыскать в некотором списке /г (г' /) все ситуации, в которых нужный символ расположен справа от точки, причем этот символ — терминальный на шаге (4) и нетерминальный на шагах (2) и (5). Таким образом„для каждой ситуации из списка мы должны устроить две связи. Перван из них указывает следующую ситуацию списка.

Эта связь позволяет по очереди рассматривать каждую ситуацию, Вторая указывает следующую ситуацию с тем же символом, расположенным справа от точкп. Эта связь позволяет эффекгивно просматривать список на шагах (2), (4) и (5). Общая стратегия заключается в том, чтобы при включении новых ситуаций каждую ситуацию из списка рассматривать только один раз.

Однако сразу после включения в /. ситуации вада [А- а В(), 11 мы справляемся в конечной таблице, заготовленной для 1,, есть ли в 1, ситуации вида [В- у., /1. Если да, включаем в 1, также и [А — аВ р, 1). Заметим, что в качестве первых компонент может появиться фиксированное число цепочек, скажем й. Поэтому в 1 может / появиться пе более й(1+!) ситуаций. Если мы покажем, что алгоритм 4.5 расходует иа каждую ситуацию из списка фиксиРовангше количество времени, скажем с, то этим будет доказано, что общие затраты времени составлшот 0(п'), так как л чл . 1 с '„ /г(/+1) = — сй(п —, ,:1) (и-1-2)с:си' /=о для некоторой константы с'. „Бухгалтерский трюкл состоит в следующем.

Время расходуется на ситуацию при разных обстоятельствах — и тогда, когда она на Рассматривается, и тогда, когда опа включается в список. Максимальное количество затрачиваемого времени в обоих слу- 366 ГЛ. 4, ОБЩИЕ МЕТОДЫ СИНТАКСИЧЕСКОГО АНАЛИЗА чаях фиксировано.

Фиксированное время расходуется также на список в целом. Предоставляем читателю показать, что 1, можно построить за фиксированное время. Мы рассмотрим ситуации в списке 1, для 1 > О. На шаге (4) исследуется а, и предыдущий список Для каждой ситуации из 1,, с символом а, расположенным справа от точки, в 1 включается некоторая ситуация.

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

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

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

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