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

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

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

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

Множество Я является также магазинным алфавитом распознавателя Ма. Конфигурация распознавателя Мо имеет вид (г), гпь, у8), где гоЕХе, уб 14*, $(ХО 6. Далее в пунктах (!), (2) п (3) определяется один такт работы синхронного распознавателя. Эти пункты аналогичны соответственно пунктам (а), (б) и (в, г) в определении КС-диаграммера. Однако существенное различие состоит в том, что, во-первых, состояниями здесь служат множества вершин, во-вторых, даже из одной вершины возможен одновременный переход за один такт по нескольким дугам и, в-третьих, синхронный распознаватель сразу определяется как детерминированный автомат, тогда как диаграммер становится детерминированным, вообще говоря, при дополнительных условиях (например, если выполнено условие разделенности).

Пусть дана конфигурация (д, агв3, уб), где а Е Х, либо а =. гв =. е. (1) Если множество а содержит вершину, из которой выходит дуга, помеченная паХ, то (д, агв$, уЦ) — (д', гп$', уй) где д' — — ((а, 1)~ дуга, выходящая из (д, 1)Ед и помеченная а, ведет в (41, 1)). г) ь-диаграымер, упоминаемый и упр. 18, тоже может следить аа ие сколькими аынолами а подходящей Ьй-граыматике, по делает ато ме меиее „прямым" способом. 41а ДОПОЛНЕНИЕ (2) Если условие в (1) не выполнено, но а содержит вершину, нз которой выходит дуга, помеченная нетерминалом, то (а, агв$, уй)'„— (а', агой, а"уй) где ~!'=((г(л, 1)) из (г(, 1) Ед выходит дуга, помеченная А) н 4' = ((с(, 1) ( из (г(, 1) Р д выходит дуга, помеченная нетерминалом). (3) Если не выполнены условия ни в (!), ни в (2), ио д содержит заключительную верп1ину или вершину, из которой выходит дуга, помеченная е (обозначим через а множество этих вершин), то (Ч ать, 73) ~ — (9', ать, у'3) где у=ч 7 и Ч =((г(, !) ~ из (с( г) Еа" в ф, /) ведет дуга, по- меченная А и д содержит вершину диаграммы г(„), языком, распознаваемым синхронным распознавателем МО, назовем множество (-(Мо)=(гвЕХ'3(((г(в 1)) гмЭ $)) — *(((дз, й)), Э, Э)) где (г(в, й) — заключительная вершина начальной диаграммы с(в.

Пример 8. Рассмотрим синхронный распознаватель Мо„со- ответствующий КС-грамматике 6а с правилами 5 А)В А — аАЬ)е  — аВс!в Его КС-диаграммы изображены на рис. Д.З. Для входной це- почки аЬ3 распознаватель Мв, сделает такую последовательность тактов: (((г(в 1И, аьь, Э) ) ((Фл, 1), (г(в, 1)) аЬЭ, 5) ) — (((г(л, 2), (г(в, 2Н, ЬЭ, ((г(в, 1)) й ) — (((с(л, 1), (г(з, 1) ), Ьб, ((г(л, 2), (г(з,2)) ((г(в, 1))$) ) — (((г(л, 3), (г(а, 3)), Ь5, (((в, 1))Э) )-(((длг 4)), 8, ((д„)))8) ~ (((г(~ 2)) $ 5) Нетрудно убедиться, что С(Мп,) =В(6,) =(ааЬи(а~0) () (а"с" ) и О). Распознаватель М назовем адекватным (грамматике 6), если ь(М ) =В(6). Упр. 19. Покажите, что если синхронный распознаватель Мо адекватен грамматике 6, не содержащей бесполезных нетер- мииалов, то 6 не леворекурсивна. 14а 419 Гл а. ОднопРОходныи синтаксический АнАлиз Бвз ВОВВРАтОВ -, з двтермнниновлнныя восходящни сннтдксическнп дндлнз Упр.

20. Покажите, что если 6 — псевдоразделенная грамма тика, то соответствующие простой МП-распознаватель А(о и сии хронный распознаватель А4о эквивалентны (и, значит, если 0 слаборазделениая грамматика, то Мо адекватен 6). Из упр. 20 и 3 следует, что проблема распознавания адекватности синхронного распознавателя неразрешима, Заметим еще, г на и в 8 Рнс. Д.з. КР-днагразсмы синхронного распознавателя. что переход от синхронного распознавателя к соответствующему анализатору нетривиален: для получения разбора может понадобиться еще один проход (об этом см. в (Алгол 681).

5.2. ДЕТЕРМИНИРОВАННЫЙ ВОСХОДЯЩИЙ СИНТАКСИЧЕСКИЙ АНАЛИЗ В предыдущем разделе мы рассмотрели класс грамматик, для которых возможен детерминированный нисходящий синтаксический анализ с чтением входной цепочки слева направо. Существует аналогичный класс грамматик, для которых тоже возможен детерминированный анализ с чтением цепочки слева направо, но анализ восходящий.

Они называются 1К-грамматиками и их изложение будет во многом параллельно изложению 1г.-грамматик предыдущего раздела. 5.2.1. Разбор с помон(ыо детерминированного алгоритма типа вперенос — свертка» В гл, 4 было показано, что восходящий разбор можно провести, чередуя свертки и переносы, с помощью двух магазинов Разбор типа „перенос — свертка" состоит в переносе входных символов в магазин, пока в его верхней части не окажется основа.

В этот момент делается свертка основы. Если не попадается ошибок, то процесс повторяется до тех пор, пока вся входная цепочка не будет прочитана, а в магазине останется один начальный символ грамматики. В гл. 4 мы изложи,ти Ра ботающий именно таким образом алгоритм с возвратами, кото рый мог вначале неправильно выбирать свертки для некотор то ых 420 основ, но в конце концов делал правильные выборы. В этом разделе будет изучен больпюй класс грамматик, для которых ~~егда возможен детерминированный безвозвратный анализ такого типа.

Это 1.К(/г)-грамматики, образующие наиболее широкий класс грамматик, анализируемых естественным образом ~низу вверх с помощью детерминированного преобразователя с магазинной памятью. Буква з в названии БК(й)-грамматик указывает на то, что входная цепочка читается слева (!еН) направо, К вЂ” на то, что выдается правый (г(ЕЫ) разбор, а й— число входных символов, на которые алгоритм „заглядывает вперед". В дальнейшем мы исследуем разные подклассы 1К(к)-грамматик, в том числе грамматики предшествования и грамматики ограниченного правого контекста. Пусть ах — правовыводимая цепочка какой-то грамматики„ причем а — либо пустая цепочка, либо оканчивается нетерминальным символом.

Тогда а называется открытой частью цепочки ах, а х — замкнутой частью. Границу между а и х назовем рубежохг. Зги определения замкнутой и открытой части правовыводнмой цепочки не следует путать с аналогичными определениями законченной и незаконченной части левовыводимой цепочки. Алгоритм разбора типа „перенос †сверт" можно рассматривать как программу расширенного детерминированного МП- преобразователя, который проводит разбор снизу вверх. Для данной входной цепочки го МП-преобразователь моделирует в обратном порядке ее правый вывод. Допустим, что В=а, О,а,~,...=р,а„— --гэ — правый вывод цепочки пг.

Каждая правовыводимая цепочка аг распределяется в памяти ДМП-преобразователя так, что ее открытая часть хранится в магазине, а замкнутая — на входной ленте справа от головки. Например, если а,=аАх, то аА будет в магазине (причем А — верхнии символ), а х — зто еще не прочитанная часть первоначальной входной цепочки. ДопУстим, что аг а = УВЗ и на шаге а,;О,а; пРименено правило В - ру, причем ур = аА и уг =-х. Имея в магазине цепочку аА, МП-преобразователь перенесет несколько (возможно, ни одного) символов с левого конца цепочки х в магазин, пока не обнаружит правый конец основы цепочки а;.

К этому моменту в магазин будет перенесена цепочка у. Затем МП-преобразователь должен локализовать левый конец основы, Как только он это сделает, он заменит основу (здесь ею будет цепочка ру), занимающую верхнюю часть магазина, подходящим нетерминалом (здесь иетерминалом В) и выдаст номер правила  — ()у. Теперь в магазине окажется уВ, 421 ГЛ. З.

ОДНОПРОХОДНЫЙ СИНТАКСИЧЕСКИЙ АНАЛИЗ ВЕЗ ВОЗВРАТОВ а г образует непрочитаииую часть входа. Зти цепочки явля1отся соответственно открытой и замкнутой частями правовыводимой цепочки я;,. Заметим, что основа цепочки яАх никогда не может лежать целиком внутри я, хотя оиа может быть полиостыо внутри х, т. е. я,, может иметь вид яАх,Вх, и к ией можно применить правило вида  — Ч, где х,их, =- х, чтобы получить я,.

Так как цепочка х, может быть очень длинной, то может потребоваться много операций переноса, прежде чем я; будет сведена к я,, Итак, в ходе разбора алгоритм типа „перепое †сверт" должен принимать репзеиия трех типов. Во-первых, перед каждым шагом надо определить, переиести ли в магазин входиой символ или делать свертку. Это решение фактически состоит в выяснении того, где в правовыводимой цепочке находится правый коиеп основы. Второе и третье решения надо принять после того, как локализован правый конец основы. Как только становится известиым, что в верхней части магазина образовалась основа, нужно локализовать в магазине ее левый коиец.

Затем, когда основа уже выделена, падо найти подходящий иетермииал, которым следует ее заменить. Грамматика, В которой никакие два различные правила ие имеют одинаковых правых частей, называется детерминированна (или однозначно) обратимой или просто обратимой. Иетрудпо показать, что каждый коитекстно-свободиый язык порождается по крайней мере одной обратимой КС-грамматикой. Если грамматика обратимая, то выделенную в правовыводимой цепочке основу можно заменить в точности одним иетермииалом. Однако многие полезные грамматики ие обратимы, так что в общем случае пам нужен какой-то механизм для определеиия того, каким иетермииалом заменить осиову. Пример $.21.

Рассмотрим грамматику 6 с правилами (1) 5 — Ба5Ь (2) Б — е и правый вывод 5 ~ Ба5Ь ~ Ба5аБЬЬ .=Р БПЯаЬЬ ~ Баа66 =; ааЬЬ Разберем цепочку ааЬЬ, используя магазин и применяя операции переноса и свертки. Символ $ будет служить концевым марке" ром входной цепочки и диа магазина. Работу алгоритма разбора типа „перенос †сверт" опишем в терминах конфигураций, представляющих собой тройки вида (яХ, х, и), где з з детеРИИНИРОВАИИЫЙ ВОСХОдящип синтАКсичРСКНЙ АНАЧИЗ (1) яХ вЂ” содержимое магазина, причем Х вЂ” верхний символ; (2) х †непрочитанн часть входной цепочки; (3) и †вых к дапиому моменту.

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

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

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

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