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

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

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

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

Но в Р' не должно быль правила 5- 5. Обращаем внимание читателя па то, что Е(6) с:-Е(6,) и, вообще говоря, Е (6,) может содержать цепочки, не принадлежащие Е(6). Теперь опишем алгоритм типа „перенос — свертка" для грамматик операторного прсдшествования. Алгоритм 5.19.

Построение анализатора, использующего операторное предшествовапие. Вход. Грамматика операторного предшествовапия 6 = (Ь(, Х, Р, 5). Выход. Алгоритм разбора 4=(1, д) типа „перенос — свертка" для грамматики 6,, 496 з.и друГИЕ КЛАССЫ Грлммлтик Метод. Пусть 5 обозначает 5 или е. (1) 7(ар, Ь)=--перенос, если а(Ь или а Ь. (2) 1(а(1, Ь) =-свертка, если а) Ь. (3) !'(65, $)=допуск. (4) !'(а, зо)=-ошибка в остальных слччаях.

(5) д(а5ЬТ, 4о) = 4, если (а) р — это 5 или е, (б) а чс Ь, (в) отношение выполняется между последовательными терминальными символами цепочки у, если они существуют, (г) 5 ()ЬТ вЂ” правило с номером 4 грамматики 6,. (6) 8(4с, зо) =ошибка в остальных случаях. ! ) Применение алгоритма 5.!9 к грамматике 6 продемопстри- ровацо на примере 5.46. Для доказательства корректности алго- ритма 5.19 нам понадобятся две леммы. Лемма 5.7. Если и — правовыводимая цепочка операторной грамматики, то а не содержит смежных нетерминалов. Доказательство. Элементарная индукция по длине вывода цепочки а. Г') Лемма 5.8. Если а — правовыводимоя цепочка операторной грамматики, то символ, расположенный непосредственно слева от основа, не может быть нетерминалом.

До к аз ат ел ь ство. Если бы этот символ был нетерминалом, то правовыводнмая цепочка, к которой свертывается и, содержала бы два смежных нстерминала. ! 4 Теорема 5.26. Алгоритм 4=-(Г, д), построенный алгоритмом 5,19, привильно выдает остовные разбора всех цепозмк языка Х. (6). Доказательство. В силу следствия из теоремы 5.25 первое встреченное отношение ) и предыдущее ( правильно выделя4от основу, Лемма 5.7 оправдывает условие, что () может быть только 5 или е (а не любой цепочкой из 5').

Лемма 5.8 объясняет, почему в пункте (5) р включается в основу. ( ) $.4.4. Язык Флойда — Эванса То, чем мы сейчас займемся, не новый алгоритм разбора, а скорее язык, па котором можно описывать детерминированные (безвозвратные) алгоритмы нисходящего н восходящего анализов. Он называется языком Флойда — Эванса. С помощью этого синтаксического метаязыка было реализовано несколько компи- 497 ГЛ. э. одионроходпыя сиитАКсичесКии лиАЛИЗ Иез вОЗВРАтав Э Ч ДРУГИЕ КЛАССЫ ГРАММАтич ляторов. Этот язык не совсем правильно называют еще языкоь1 продукций или правил, так как операторы языка не связаны рамма, написан.

с определенпымн правилами грамматики. Программа, ная на языке Флойда — Эванса, определяет алга итм азб п ннимаю й р щи решения под воздействием управляющего ст ойства с конечной памятью '). Анализатор, записанный на языке Флойда — Эв ставляет соб о "да — ванса, предопе ато т собой список операторов определенного вид . К а. аждыи состоя р р имеет метку, и эти метки можно рассматр м тривать как ран ния управляющего устройства. Предполага я, р аботают раторы не могут иметь одну и ту же метку. Опера над входной цепочкой и магазином и п иво торы строению правого разбора.

Текущее состояние процесса анализа можно представить в виде конфигурации (в, 9Х ...Хю а,...а„й, я) где ( ) и — метка текущего активного оператора; 1 ( ) м...Х,— содержимое магазина, причем Х,— верхний символ (6 — маркер дна магазина); (3) а,... а„— необработанная часть входной цепочки (6 используется такхсе в качестве правого концевого марк.р 4 ркера входной (4) я †готов к данному моменту часть выхода анализатора; ожидается, что полным выходом будет правый разбор входной цепочки для некоторой КС-грамматики. Оператор яаана Флойда — Эванса имеет внд <метка>: сх)а — р) <действие>в <следующая метка> причем метасимволов — и в может не быть.

Допустим, что анализатор находится в конфигурации (с.1, уа, ах, л) и оператор 1.1 имеет вид Ы: сс(а- р) выдача звЕ2 ч ч ного обобщении понятия алгоритма тнпв „перенос — свв н '", сй(д)- . : у у 'рввлиющсс устройство с конечной памятью, в аволннтельную инфо мэпию х у фор, 'раннг в мвгвэиие. Симой общей моделью влгорнтчв в давали '- эсого тнпв следовало бы считать ДМП-п(юабрвэователь. О нвн . 3 4 мы видели, что ДМП-п е ь.

днако в равд. входной пеночки, ел ДМП-преобразователь вовсе не ьобнэвн проводить разбоР д вн свергни в соответствии с грвмматнной, дли внвлиэв рвэд. 5.3 н 5.4. которой он преднвэивчен, иви это делал 1м(й)-влгорнтм и элгар тмы нэ и (19661. Этот оператор говорит о том, что если наверху магазина ожена цепочка я и а — текущий входной символ, то надо заменить а на р, выдать цепочку з, сдвинуть входную головку на один ин символ вправо (на э1о указывает наличие символа и и перейти к следующему оператору 1.2.

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

Если отсутствует символ —, то магаз не меняется, и поэтому нет смысла указывать р. Если опущен символ в, то входная головка нс сдвигается. Если опущена <следующая метка>, то после данного оператора применяется следующий в списке. Другие возможные действия — допуск и ошибка. Если место, предназначенное для действия, пусто, то не надо делать ничего, кроме распознавания входного символа и замены в магазине. Первоначально анализатор находится в конфигурации (1., Б, сп$, е), где сл — анализируемая входная цепочка и 1.— выделенный оператор.

Затем последовательно проверяются операторы, пок ока среди них не найдется применимый. После выполнения е всех действий, предписываемых этим оператором, управлени передается оператору, указанному меткой. Анализатор продолжает работать до тех пор, пока не выполнится действие ошибка нли допуск. Выход принимается во внимание только в случае допуска. й(ы покажем, как с помощью языка Флойда — Эванса описываются алгоритмы типа „перенос — свертка", но обращаем внимание читателя на то, что этот язык можно использовать идля реализации нисходящих алгоритмов разбора. Итак, предполагается, что можно писать сс =- а,ссэссв и р = сс,Апв или сс Аа а, если есть гю При этом А — сс,— правило грамматики, а для которой предпринимается разбор, а выход з — номер этого правила.

Язык Флойда †Эван можно модифицировать так, чтобы действиями стали некоторые „семантические процедуры", Тогда вместо того, чтобы выдавать разбор, анализатор будет выполнять синтаксически управляемую трансляцию, вычисляющую перевод нетермииала А в терминах переводов составных частей цепочки ссв. Система такого рода описана Фельдманом гл. з. одноппоходнып синтлксичнскии Анализ нез возвратов Бл. дРугие классы ГРАммАтик Пример 5.47. Запишем на языке Флойда — Эванса анализатор для грамматики 6, с правилами (1) Е- Е+Т (2) Š— Т (3) т Т Р (4) Т-Р (5) Р— (Е) (6) Р— а Символ 4~ играет роль представителя любого символа. Предполагается, что с обеих сторон стрелки он обозначает один и тот же символ. Начальным оператором служит 111.

10: ( ! рР (рр' ! 10 11: а !.де†Рде ! выдача 6 е 12: Тн Р~Е ! Т~ 13: Р,-~ ! выдача 3 1.4 выдача 4 14: т» 15: Е+ Т вЂ”,'б ! Ф=тнФ Е-Ф «10 1 7 выдача 16: Тф- — Еф. )выдача 2 17: Е+ Я вЂ” Е+уР! и 1.0 18: (Е) ! ф- Р т(е )выдача 5 е 12 19: $Е$ ! — )допуск 110: ! ошибка 111: )Ф- рР ! 1О Для входной цепочки (а+а)еа анализатор пройдет такую последовательность конфигурации: [1,1 1, $, (а+а)на$, е)! — [10, $(, а+а)на$, е) ! — [10, $(а, +а) на$, е) ! — [11, $(а, +а)еа$, е) 1 — [12, $(Р'+, а)еа$, 61 )- [ЬЗ, 1 — [Л4, ) — [15, 1 — [16, 1 — [Л7, )- [10„ ! — [1,1, )- [Е2, ) — [ЕЗ, 1 — [1,4, г- [15, ) — [17, $(Р+, а) на$, 61 $(Т+, а)на$, 64) $(Т+, а) еа$, 641 $(Т+, а)еа$, 64) $(Е+, а) еа$, 642) $(Е+а, ) еа$, 6421 $(Е+а, )еа$, 6421 $(Е+Р), еа$, 64261 $ (Е+ Р), е а$, 64261 $(Е+Т), еа$, 64264[ $(Е+Т), на$, 64264) $(Е), еа$, 6426411 [18 $(Е) еа$, 642641) ! [Г2, $Ра, а$, 64264151 [ГЗ $Р», а$, 64264151 [Г4 $Т н а$, 642641541 [ГО $Тна, $, 64264154! [г 1 $Т и а, $, 64264154[ [12 $ТеР$, е, 6426415461 ) — [Г4, $Т$, е, 6426415463! [1,о $Т$', е, 6425415463! [г.б, $Т$, е, 64264154631 [Г 7 $Е$, е, 642641546323 [1,6 $Е$, е, 64264154632) [19 $Е$, е 64264154632! ) — допуск (:) Заметим, что анализатор Флойда — Эванса можно промоделировать на ДМП-преобразователе, Поэтому любой анализатор Флойда — Эванса распознает только детерминированный КС-язык.

Но распознаваемый им язык может не совпадать с языком, определяемым грамматикой, для которой он должен строить разборы, поскольку передача управления операторами может привести к тому, что некоторые свертки не будут реализованы'). Пример 5.48. Пусть 6 состоит нз правил (1) 5- аЯ (2) 3 — 5$ (3) Я- а 1 (6) = (а+ 5)*а. Приведем последовательность операторов, представлягощую собой анализатор, который з соответствии с грамматикой 6 разбирает цепочки из языка 5*а, ио не допускает других цепочек: ЕО: ),т' тг-' % 1.1: а! — Я )выдача 3 14 Е2: Ь! ! 10 ЕЗ: $! ! ошибка Е4: аЬ'! — $ ! выдача 1 14 Е5: 5$ ! — Я ! выдача 2 14 Еб: $3! $ $5$!допуск я.

Е7: ! ошибка ') Обсуждаемая здесь ситуация аналогична той, что рассматривалась п дополнении к равд. 5.1: анализатор Флойда-Эванса А)о, построенный по грамматике С, может быть не адекватен С, т. е. Ь(Мо) Ф Ь(С).— Прим. персе. 501 5ЗЬ ДРУГИЕ КЛАССЫ ГРАММАТИК ГЛ. 5, ОДНОПРОХОДНЫГГ СИНТАКСИЧЕСКИЙ АНАЛИЗ БЕЗ ВОЗВРАТОВ Для входной цепочки Ьа анализатор сделает такую последовательность шагош иоииенсмна.сдадоднае ераээмагпннн однаэнан Цепочка Ьа допускается после выполнения оператора Е6. После- довательность шагов для цепочки аа такова: аиаеааируемме пофпойду-Эданау аперагпориоаа реднэеопдадаиаи [ЕО, $, аа$, е11 — [Е1, $а, п$, е1 1 — [Е4, $3, а$, 31 1 — [Е5, $3, а$, 31 ) — [Е6, $3, а$, 31 1 — [!7, $3, а$, 31 ьь Оператор Е7 объявляет об ошибке, хотя ааЕЕ(6). В примере 5.48 ничего мистического нет.

Программа анализа;ора, написанная на языке Флойда — Эванса, пе так тесно свя!Зна с грамматикой, для которой Она производит разбор, как )ругие алгоритмы этой главы со своими грамматиками. [ 1 раааираи ! про даэесгпд одран!амме сиадоа э ' првдагеспдадаиаа В гл. 7 мы дадим алгоритм, механически порождающий ана)изатор, написанный на языке Флойда †Эван, для обратимой рамматнки слабого предшествования. проопгаао преАиеаэгдо данаи '.4Л. Резюме Рис.

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

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

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

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