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

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

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

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

Если можно обойтись одной выходной цепочкой, то, обнаружив первую последовательность тактов, оканчивающуюся заключительной конфигурацией, можно прекратить моделирование Р. Разумеется, если ни одна последовательность не оканчивается заключительной конфигурацией, придется перепробовать все. Синтаксический анализ с возвратами можно представлять себе в следующем виде, Последовательности тактов располагают обычно в таком порядке, чтобы к моделированию очередной последовательности можно было перейти, возвратившись по последннм сделанным тактам (т. е. прослеживая их) к конфигурации, в которой возможен еще не испытанный альтернативный такт. Этот такт и надо затем сделать, На практике для ускорения процесса возврата пользуются локальными критериями, позволяющими, пе моделируя всей последовательности, определить, может ли она привести к заключительной конфигурации.

В этом разделе мы опишем, как можно детерминированно моделировать недетерминированный МП-преобразователь, используя возвраты. Затем исследуем два специальных случая. Первый †нисходящ анализ с возвратами, при котором для входной цепочки строится левый разбор. Во втором случае восходящии анализ с возвратами дает правый разбор. ч4 Т. Модепироваиие МП-преобразователи Рассмотрим МП-преобразователь Р и лежащий в его основе МП-автомат М. Если дана входная цепочка ш, то нам было бы удобно знать, что, хотя А1 может недетерминированно перепро- ГЛ. Ь. ОБ ИЕ НЕТО Ы СИНТАКСИЧЕСКОГО АНАЛИЗА Ы.. СИНТАКСИЧЕСКИЙ АНАЛИЗ С ВОЗВГАТАМИ бовать много последовательностей тактов, каждая из них огра. ничена по длине.

Если это так, то последовательности можно перепробовать в некотором разумном порядке. Если для входа и возможны бесконечные последовательности тактов, то по крайней мере в одном смысле нельзя осуществить полное прямое моделирование МП-автомата М. Определение.

МП-автомат М=(>е, Х, Г, 6, д„Л„Ь) пазы вается яезациклиеиющимся, если для каждой цепочки и> Е Х' найдется такая константа й, что если (»„и>, хь) ! — "(>), х, у), то т й . МП-преобразователь назовем незациклиеа>ощи ся, если лежащий в его основе МП-автомат незацикливающийся. Интересно, при каких условиях, налагаемых на грамматику б, левый или правый анализатор для б будет незацикливающимся. Предоставляем читателю в качестве упражнений доказать, что левый анализатор пе зацикливается тогда и только тогда, когда грамматика В ие леварекурсивна, а правый анализатор не зацикливается тогда и только тогда, когда 6 не содержит циклов и е-правил.

Мы покажем далее, что именно при этих условиях работают общие нисходящие и восходящие алгоритмы разбора с возвратами, хотя более общие алгоритмы работают на грамматиках из более широкого класса. Заметим, что условие отсутствия циклов и е-правил на самом деле не очень ограничительно. Для каждого КС-языка существует грамматика, удовлетворяющая этим условиям, и, более того, ее можно получить из произвольной КС-грамматики, порождающей этот язык, с помощью простых преобразований (алгоритмы 2.

!О и 2.11). Далее, если исходная грамматика однозначна, то преобразованная грамматика лево- и правопокрывает ее. Отсутствие левой рекурсии в этом смысле более стеснительное условие. Хотя для каждого КС-языка существует грамматика без левой рекурсии (теорема 2.18), может не быть покрывающей грамматики, удовлетворяющей этому условию (см.

упр. 3.4.29). Для того чтобы продемонстрировать, что такое анализ с возвратами и вообще моделирование недетермипированного МП-преобразователя, рассмотрим грамматику б с правилами (!) 5 — а5ЬЬ' (2) 5 — а5 (3) Ь'- с Левым анализатором для 6 служит МП-преобразователь Т с функцией переходов, определяемой равенствами 6(д, а, Ь)=((>), 5Ь5, !), (>>, 5, 2)) 6 (д, с, 5) ((>>, е, 3)) б(>1, Ь, Ь)=~(>), е, е)) Допустим, чта нам надо разобрать входную цепочку аасЬс. На рис, 4.1 изображено дерево, представляющее возможные последовательности тактов, которые может сделать Т для этого входа. С С С>Ь Ь СЬ СЬ 1 Ст Ркс.

4.|. Последолательиостн тактов вналнзьто!>ь. Вершина С, представляет начальную конфигурацию (», аасЬс, 5, е). Правила, определяющие Т, показывают, что из С„ыожно перейти в две следующие конфигурации, а именно С, =(>>, асбс, 5ЬЬ', 1) н С,=(>>, асбс, 5, 2). (Упорядочение здесь произвольное.) Из С, анализатор Т может перейти в конфигу- рации С,=(>),сбс,56565, 11) и С,— (с>, сЬс, 565, 12). Из С, можно перейти в конфигурацииС„= (»,сЬс,565,2!) и С„=-(>>, сбс, Ь', 22). Остальные конфигурации определяются однозначно.

Один из способов нахождения всех разборов данной входной цепочки состоит в определении всех допускающих копфигураций, достижимых из С, в дереве конфигура>тий. Это можно сделать, прослеживая все возможные пути, начинающиеся в С, и заканчивающиеся в конфигурации, из которой дальнейший переход невозможен. Можно ввести порядок, в котором будут перебираться пути, упорядочив выборы очередных тактов, доступных анализатору Т, для каждой комбинации состояния, входного символа и верхнего символа магазина.

Например, в том случае, когда применимо правило 6 (», а, 5), возьмем (>), 565, 1) в качестве первого выбора и (д, 5, 2) — в качестве второго выбора. Посмотрим теперь, как можно определить все допускающие конфигурации анализатора Т, систематнчески прослеживая все возможные для Т последовательности тактов. Допустим, что из С, ., делая первый выбор, мы получаем С,. Из С„снова делая первый выбор, получаем С,.

Продолжая в том же духе, мы "Рослеживаем последовательность конфигураций С„, ффф С, Ст. Вершина С| представляет заключительную конфигурацию (», е, Ь5, 1133), которая не является допускающей. Чтобы Згэ ГЛ. 4. ОБЩИЕ МЕТОДЫ СИНТАКСИЧЕСКОГО АНАЛНЗА определить, существует ли другая заключительная коифигураг ция, можно вернуться (сделать <возврат») по дереву, пока не встретится конфигурация, для которой возможен другой, еще не рассмотренный выбор очередного такта.

Поэтому мы должны быть в состоянии восстановить конфигурацию С, по конфигурации С,. Возврат к С, из С, может включать обратный сдвиг головки на входе, восстановление предыдущего содержимого магазина и удаление выходных символов, выданных при пере. ходе от С, к С,. Восстановив С„мы должны сделать новый выбор очередного такта (если таковой возможен). Так как в вершине С, других выборов нет, мы продолжаем возврат к С, и далее к С» и С,. Из С, с помощью второго выбора такта для правила 6 (»г, и, 5) можно получить конфигурацию С,. Затем, переходя через конфигурации С„н С„можно получить конфигурацию С„=~ =(д, е, с, 1233), которая оказывается допускающей.

После этого можно выдать в качестве выхода левый разбор 1233. Если мы заинтересованы в получении только одного разбора входной цепочки, то можно остановиться. Но если нас интересуют все разборы, можно вернуться к конфигурации С» и затем испробовать все конфигурации, достижимые из С,.

Вершина С„представляет другую допускающую конфигураци!о, а имепно (д, е, е, 2!33). Мы остановимся после того, как рассмотрим все последовательности тактов, которые может сделать Т. Если входная цепочка построена синтаксически неправильно, то придется рассмотреть все возможные последовательности тактов. Если исчерпаны все последовательности тактов, а допускающая конфигурация пе обнаружена, надо выдать сообщение об ошибке. Описанный нами анализ иллюстрирует характерные черты алгоритма, который иногда называют недетерминироеаннь»м, т. е. на некоторых его шагах допускаются выборы и все их нужно перебрать' ).

На самом деле систематически порождаются все конфигурации, к которым могут привести данные, обрабатываемые алгоритмом, пока не встретится нужное решение или не исчерпаются все возможности. Понятие недетерминированного алгоритма применимо, таким образом, не только к моделированию недетерминированного автомата, но также и ко многим другим проблемам. Интересно отметить, что нечто аналогичное проблеме остановки для МП-преобразователей всегда приводит к вопросу о том, можно ли промоделировать недетермипированный алгоритм детерминированно. Конкретные приме. ры недетермннированиых алгоритмов даны в упражнениях.

') Лучше было бы на»неть такой алгоритм пер«берлын. Термин «перетер. миннронанный елгорнтм» обычно употребляют и том же смысле, что и «не' детерминированный автомат» (прои»польного типа). — Прим. перел, 320 4,1 СИПТАКСИЧЕСКИй АНАЛИЗ С ВОЭВРАТАМИ При синтаксическом анализе задается обычно грамматика, а не МП-преобразователь. Поэтому мы обсудим сейчас восходящий и нисходящий анализ прямо в терминах заданной грамматики, а не левого или правого анализатора для нее. Однако особ аботы соответствующих алгоритмов состоит именно в иной иапо следовательном моделировании анализатора с магази т" мятью. Но вместо обхода всевозможных последовательнос ей тактов анализатора мы будем обходить всевозможные выводы, совместимые с данным входом. йА.2. Нефорььвпьиое описание нисходящего разбора Происхождение названия нисходящего синтаксического анализа связано с тем, что дерево разбора входной цепочки строится сверху вниз, начиная с корня и нисходя к листьям.

Начнем с тог „ го что возьмем какую-нибудь грамматику н для каждого части нетерминала занумеруем в некотором порядке все правые ча правил, у которых левой частью является данный нетерминал (их называют альтернатиопмг! этого ндперминала), т. е. если А- а,!а, ~...)ан — все А-правила данной грамматики, то припишем некоторый порядок цепочкам а! (альтернативам нетерминала А). Например, рассмотрим грамматику, упомянутую в предыдущем разделе. Ее 5-правила 5 п5Ы! а5!с будем использовать в том порядке, как они написаны, т. е.

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

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

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

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