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

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

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

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

должно быть очевидно, что последовательность совместимых частичных левых разборов единственна и включает все совместимые частичные левые разборы в естественном лексикографиче- СКОМ ПОРЯДКЕ. Лемма 4.1, Пусть 6=- (Х, Х, Р, 5) — нг леворекурсивная грамуио1пика. Тогда найдется такая константа с, что если А =Ц шВа и )со)=п, то 1 с"+''). До к азат еяьство.

Пусть 4Р1ч'=й, Рассмотримдерево 0 ле. ного вывода А =Ф'ьвВа. Допустим, что существует путь от корня к листу длины, большей, чем й(а+2). Пусть и,— вершина, намеченная нетерминалом В, явно указанным в цепочке шВа, Если уч вк нв Рнс. 4.3. Дерено вывода !З. этот путь Оканчивается листом, расположенным справа от п„то путь к и, должен быть не менее длинным. Это следует из того, что В левом выводе правило всегда применяется к самому левому нетерминалу. Поэтому прямой предок каждой вершины, расположенной справа от п„является предком вершины и,. Дерево Р показано на рис. 4.5.

Таким образом, если в Т! есть путь длины, большей, чем н(п+2), то можно найти Один такой путь, достигающий и., или Вер|пины, расположенной слева от п,. Тогда на этом пути можно найти й+! посяедовательных вершин па, ..., па+1, каждая иа которых порождает один и тот же кусок цепочкй соВ. Все пря- 1 )у у у у~: и эависнт от и.

Однако пока нам дсстатонно н этого рсэуаьтата, а потом мм с его помощью докажем более сильное утверждение. 331 Гл. 4. Овгпие метОды синтАксическОГО АнАлизА 4.1 СИНТАКСИЧЕСКИЙ АНАЛИЗ С ВОЗВРАТАМИ мые потомки вершины п, (1(1~й), расположенные слева от п,„„порождают г. Следовательно, можно найти две вершины из п„..., пь„- с одной и той же меткой, и легко видеть, что эта метка — леворекурсивный нетерминал, Отсюда заключаем, что в Р нет путей„длина которых больше й(гг+2). Пусть ! — длина самой длинной из правых частей правил грамматяки 6.

Тогда Р имеет не более !Ам+11 внутренних вершин. Поэтому если А=>гигВа, то г«!Агв+гг. Возьмем с=-!А; лемма доказана. Е) Следствие. Пусть 6 =- (Р), Х, Р, 5) — нг леворгкурсивная грамматика. Тогда найдется такая константа с', что если 5 =ФгигВа и иг ~ г, то ) а ) ~ с' ( пг ). Доказательство. Мы показали (см. Рис. 4.5), что длина пути от корня к вершине и, не превосходит й((иг(+2).

Поэтому !а)~й1()аг(+2). Возьмем с'= 3й!. Лемма 4.2. Пусть 6 =-(Р), Х, Р, 5) — КС-грамматика, нг содержащая бесполезных нпперминалов, и ш=а,ач ... а„Е Х'. Последовательность совместимых с иг левых разборов конечна тогда и только тогда, когда 6 не леворекурсивна. Доказательство. Если 6 леворекурсивна, то ясно, что для некоторой терминальной цепочки последовательность совместимых с нею левых разборов бесконечна.

Допустим, что 6 не леворекурсивна. Тогда по лемме 4.1 длина каждого совместимого с иг левого разбора не превосходит с"4'. Таким образом, число совместимых с иг левых разборов конечно. () Определение. Пусть 6 = (Х, Б, Р, 5) — КС-грамматика и у— последовательность индексов альтернатив (т. е.

нетерминалов с номерами) и терминалов. Пусть л — частичный левый разбор, совместимый с иг. Будем говорить, что у описывает л, если выполняется следующее условие: (1) Пустьл=р,... рь и 5=-а, р,-оа; Р,~аг ... в~~ах. Пусть аг=-хг()г, где Рг — либо г, либо начинается нетермипалом. Тогда У = Аг,ш,Аг,гзг... Аг игь, гДе Аг — инДекс пРавила (альтеРнативы), пРименеиного пРи пеРеходе от ау, к сгх, н игт — такой сУффикс цепочки хт, что ху=-ху гшр Лемма 4.3. Пусть 6=-(Р), г., р, 5) — не лвворгкурсивная гром. матика и л„л„..., лн ... — последовательность совместимых с иг чаопичных левых разборов. Допустим, что ни один из разборов л„..., лг не является левым разбором цгпо«ки иг.

Пуапь 5,=Ьа и 5 . ОР. Запишем а и )) в виде ха, и у!)1 соотвггп. пг лг 41 ствгнно, где каждая из цепочек а, и()г — либо г, либо начинаетсх 332 нгтерминалом. Тогда в алгоритме 4..1 (4, 1, г, 5й )-'(у, 1, уг, а13) )-'И !., т„М) где 1, = ~ х ~ + 1, 1, = ~ у ~ + 1, а у, и у, оп исывают соотвгтсгпвгнно лг и лг,.

доказательство. Доказательство проводится индукцией по г'. Базис, 4=0, тривиален. Для доказательства шага индукции рассмотрим отдельно два случая. Случай 1: л;.,— продолжение разбора л,. Пусть первый символ цепочки а,— это нетерминал А, а его альтернатнвы— б„..., б . Если цепочка хб, пе совместима с входной цепочкой, то в случае замены алгоритмом 4.1 нетерминала А цепочкой б,, правила (г), (д) и (е г) гарантируют, что следующей будет испытана альтернатива б 4;.

Так как мы предположили, что лг+4— продолжение разбора лг, то нужная альтернатива нетерминала А впоследствии будет испытана. После того как по правилу (б) произойдет сдвиг по входу, будет достигнута конфигурация (4,1„У (15)у Случай 21 лг; — модификация разбора лг. Все неиспытанные альтернативы нетермииала А сразу приводят к возврату, и по правилам (д) и (е В1) содержимое магазина С1 в конце концов будет описывать частичный левый разбор лт, упоминаемый в определении модификации. Тогда, как в случае 1, будет достигнута конфигурация (г), 1„т„()13). Е) Теорема 4.1. Алгоритм 4.1 дает левый разбор цепочки иг, если он существует, а в противном случае выдает сообщение об оигибке.

Д о к а з а т е л ь с т в о, Из леммы 4,3 видно, что алгоритм' перебирает все совместимые частичные левые разборы до тех пор, пока не обнаружится левый разбор входной цепочки или не будут исчерпаны все совместимые частичные левые разборы.

По лемме 4.2 число таких разборов конечно, так что алгоритм Рано или поздно остановится. () 4А 4, Временийя и емкостнея сложность нисходящего енепизетора Рассмотрим Вычислительную машину, у которой емкость памяти, необходимая для хранения конфигураций алгоритма 4.1, пропорциональна сумме длин обоих магазинов; это предположение вполне разумно. Разумно также предположить, что время, затрачиваемое на вычисление конфигурации С, по конфигурации С;, если Сг)- С„ не зависит от этих конфигураций.

Пока. жем, что при этих предположениях алгоритм 4.1 требует линей- ЗЗЗ ГЛ. 4. ОБЩИЕ МЕТОДЫ СИНТАКСИЧЕСКОГО АНАЛИЗА ной емкости памяти и нс более чем экспоненциального времени работы, рассматриваемых как функции от длины входной цепочки. Для доказательства нам понадобится следующая лемма, усиливающая лемму 4.1. Лемма 4.4. Пусть 6=(Х, Х, Р, Л) — не леворекурсивнпя грпл1- матика, Тогда найдется такая константа с, 1то если А =>'и и (а(~ )1, 1ло 4 <с(и). Доказательство. По лемме 4.1 найдется такая константа с,, что если А-.У'е, то 1 =.с,.

Пусть чг !ч=-14 и ! — длина самой длинной из правых частей правил. По лемме 2.16 множество 1ч можно представить в виде (А„А„..., АА,), где 1 > 4, если А1=)' Ауа. Индукцией по параметру р=-йл — ! докажем, что (4.1,1) если А =->га н )п)==л)~!, то 1<Ыс,!и! — 11с, Базис. Базис, р=-О, выполняется автоматически, так как мы предполагаем, что и Ъ 1. Шаг индукции.

Допустим, что (4.1.1) истинно для всех значений параметра йл — !' < р. Рассмотрим это утверждение для параметра йл — 1.= р. Пусть первым шагам упоминаемого в нем вывода был А;Э Х1 ... Х, для г<1. Тогда можно записать а=а, ...

а„где Х,„=>4 и, 1-- т - г и 4=-1+1,+... +1,„. Пусть а, =и, =... = а,,—.-.е и сс, =~=в. Так как 4хчье, то такое число з существует. Исследуем отдельно два случая. Случай 1: Х,— нетерминал, скажем А . Тогда А, =>" А Х4+, ... Х„, так что д >1. Так как я)а,) — д < р, то в силу (4.1.!) 1',<Ыс4';сс, ( — а(с4. Так как )и„! <(44! для в+1 <т<г, то из (4.1,1) следует, что 4 <'Ыс,)п ! всякий раз, когда з+1<т .г и и =~е. Разумеется, не более 1 — ! цепочек из п4, ..., а, пусты, так что суммирование чисел ! по тем т, для которых а =е, даст число, не превосходящее (! — 1)с,. Таким образом, 4 = 1+ 1, +... -!- 1', (1+(1 — !) с,+Ыс,!а! — д(с, Ыс, ~ и) — (д — 1) 1с, < Ыс1 ! а ) — 1 1с, Случай 2: Х,— терминал.

В качестве упражнения предлагаем показать, что в этом случае 1< 1+Ыс, (~!и ! — 1) ( й!с, ( а ( — 11с,. Из (4.!.1) вытекает, что если 5=>1п и (а!) 1, то 4< Ыс, ~и~. Возьмем с — Ыс,; лемма доказана. П 334 4Л. СИНТАКСИЧЕСКИЙ АНАЛИЗ С ВОЗВРАТАМИ Следствие 1. Пусть 6 = (11', ль Р, Ь) — не лсворекурсивная г пмматика. Тогда найдется такая константа с', что если Б=:;>','4оАа и Н4~е, то 1<с'(4в!. Д о к а з а т е л ь с т в о. Согласно следс1 вию леммы 4.1, найдется такая константа с", что (п)<с"!и4!. По лемме 4.4 1' с!4вАп !.

Так как ! п1Ап ) < (2+ с") !4е ), то выбор с'=-с (2+с") дает нужный результат. Следствие 2. Пусть 6 — --(14, Б, р, 5) — не леворекурсивная граммптикп. Тогда найдел1ся такая константа я, что если л — частичный левый разбор, совл4естимый с целочкой 4о, и 5„=='> хсс, где и — либо е, либо нпчинаели:я нетерминплом, то /л/:й (!4о/-!-1).

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

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

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

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