Главная » Просмотр файлов » dzhon_khopkroft_radzhiv_motvani_dzheffri _ulman_vvedenie_v_teoriyu_avtomatov_yazy kov_i_vychisleniy_2008

dzhon_khopkroft_radzhiv_motvani_dzheffri _ulman_vvedenie_v_teoriyu_avtomatov_yazy kov_i_vychisleniy_2008 (852747), страница 50

Файл №852747 dzhon_khopkroft_radzhiv_motvani_dzheffri _ulman_vvedenie_v_teoriyu_avtomatov_yazy kov_i_vychisleniy_2008 (Введение в теорию автоматов) 50 страницаdzhon_khopkroft_radzhiv_motvani_dzheffri _ulman_vvedenie_v_teoriyu_avtomatov_yazy kov_i_vychisleniy_2008 (852747) страница 502021-10-05СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

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

Для этого применим индукцию по размеру выражения в теле.Базис. Если тело представляет собой конкатенацию элементов, то продукция ужеимеет допустимый в КС-грамматиках вид, поэтому преобразовывать нечего.Индукция. В зависимости от старшего оператора возможны пять ситуаций.1.При конкатенации продукция имеет вид A → E1, E2, где E1 и E2 — выражения, допустимые в языке DTD. Введем две переменные, B и C, не используемые больше нигде. Заменим A → E1, E2:A → BCB → E1C → E25.3.

ÏÐÈËÎÆÅÍÈß ÊÎÍÒÅÊÑÒÍÎ-ÑÂÎÁÎÄÍÛÕ ÃÐÀÌÌÀÒÈÊСтр. 217217Первая продукция, A → BC, допустима в КС-грамматиках. Две последние могут быть какдопустимыми, так и недопустимыми. Однако их тела короче, чем тело исходной продукции, поэтому на основании индукции их можно преобразовать в форму КС-грамматик.Для оператора объединения продукция имеет вид A → E1 | E2.

Заменим ее следующей парой продукций.2.A → E1A → E2Аналогично, эти продукции могут иметь недопустимый вид, но их тела короче,чем тело исходной. Применяем эти же правила рекурсивно и преобразуем их к виду КС-грамматик.Продукция имеет вид A → (E1)*. Введем новую переменную B, не используемуюбольше нигде, и заменим продукцию следующими тремя.3.A → BAA→εB → E1Для продукции A → (E1)+ вводим новую переменную B, не используемую большенигде, и заменяем продукцию следующими тремя.4.A → BAA→BB → E1Продукция имеет вид A → (E1)?. Заменим ее:5.A→εA → E1Пример 5.24. Рассмотрим преобразование DTD-правила<!ELEMENT PC (MODEL, PRICE, PROCESSOR, RAM, DISK+)>в обычные для КС-грамматик продукции.

Тело этого правила рассмотрим как конкатенацию двух выражений, первое из которых есть MODEL, PRICE, PROCESSOR, RAM,а второе — DISK+. Создав для этих подвыражений переменные A и B, соответственно,используем следующие продукции.Pc → ABA → Model Price Processor RamB → Disk+Только последняя не имеет нужного вида. Введем еще одну переменную C и следующие продукции.B → CB | CC → Disk218Стр. 218ÃËÀÂÀ 5. ÊÎÍÒÅÊÑÒÍÎ-ÑÂÎÁÎÄÍÛÅ ÃÐÀÌÌÀÒÈÊÈ È ßÇÛÊÈВ данном частном случае переменные A и C в действительности не нужны, посколькувыражение, порождаемое из A, есть просто конкатенация переменных, а Disk — одиночнаяпеременная.

Вместо приведенных продукций можно было бы использовать следующие.Pc → Model Price Processor Ram BB → Disk B | Disk†5.3.5. Óïðàæíåíèÿ ê ðàçäåëó 5.35.3.1.Докажите, что если цепочка скобок сбалансирована (как в примере 5.19), то онапорождается грамматикой B → BB | (B) | ε. Указание.

Проведите индукцию подлине цепочки.5.3.2.Рассмотрим множество всех цепочек сбалансированных скобок двух типов,круглых и квадратных. Следующий пример показывает их происхождение. Есливзять выражения в языке C, которые используют круглые скобки для группирования и для вызовов функций и квадратные скобки для индексов массивов, иудалить из них все, кроме скобок, то получим цепочки сбалансированных скобок этих двух типов. Например,f(a[i]*(b[i][j]+c[g(x)]),d[i])превращается в сбалансированную цепочку ([]([][][()])[]).

Построитьграмматику для всех сбалансированных цепочек из круглых и квадратных скобок, и только для них.5.3.3.В разделе 5.3 рассматривалась грамматика S → ε | SS | iS | iSeS и утверждалось,что принадлежность цепочки w языку L этой грамматики можно проверить путем повторения следующих действий, начиная с w.1.Если текущая цепочка начинается с e, то проверка не пройдена; w ∉ L.2.Если текущая цепочка не содержит e, то проверка пройдена; w ∈ L.3.В противном случае удалить первое e и i непосредственно слева от него. Повторитьэти три шага с полученной цепочкой.Докажите, что этот процесс правильно распознает цепочки языка L.5.3.4.

Добавьте к грамматике HTML (см. рис. 5.13) следующие формы:а) (∗) элемент списка должен заканчиваться закрывающим дескриптором </LI>;б) элемент может быть как неупорядоченным, так и упорядоченным списком. Неупорядоченные списки заключаются в парные дескрипторы <UL> и </UL>;в) (!) элемент может быть таблицей, которая заключается в парные дескрипторы <TABLE> и </TABLE>. Между ними находятся одна или несколько цепочек, каждая из которых заключается в <TR> и </TR>. Первая цепочка яв5.3.

ÏÐÈËÎÆÅÍÈß ÊÎÍÒÅÊÑÒÍÎ-ÑÂÎÁÎÄÍÛÕ ÃÐÀÌÌÀÒÈÊСтр. 219219ляется заголовком с одним или несколькими полями, каждое из которых начинается дескриптором <TH> (будем предполагать, что эти дескрипторы незакрываются, хотя в действительности они парные). Поля в следующих цепочках начинаются дескриптором <TD>.<!DOCTYPE CourseSpec[<!ELEMENT COURSES (COURSE+)><!ELEMENT COURSE (CNAME, PROF, STUDENT*, TA?)><!ELEMENT CNAME (\#PCDATA)><!ELEMENT STUDENT (\#PCDATA)><!ELEMENT TA (\#PCDATA)>]>Рис. 5.16.

DTD для курсов5.3.5.Преобразуйте DTD (рис. 5.16) в КС-грамматику.5.4. Íåîäíîçíà÷íîñòü â ãðàììàòèêàõ è ÿçûêàõКак мы увидели, в приложениях КС-грамматики часто служат основой для обеспечения структуры различного рода файлов. Например, в разделе 5.3 грамматики использовались для придания структуры программам и документам. Там действовало неявноепредположение, что грамматика однозначно определяет структуру каждой цепочки своего языка. Однако мы увидим, что не каждая грамматика обеспечивает уникальностьструктуры.Иногда, когда грамматика не может обеспечить уникальность структуры, ее можнопреобразовать, чтобы структура была единственной для каждой цепочки. К сожалению,это возможно не всегда, т.е.

существуют “существенно неоднозначные” языки; каждаяграмматика для такого языка налагает несколько структур на некоторые его цепочки.5.4.1. Íåîäíîçíà÷íûå ãðàììàòèêèВернемся к грамматике выражений (см. рис. 5.2). Эта грамматика дает возможностьпорождать выражения с любой последовательностью операторов + и *, а продукцииE → E + E | E * E позволяют порождать эти выражения в произвольно выбранном порядке.Пример 5.25. Рассмотрим выводимую цепочку E + E * E. Она имеет два порождения из E:1.E⇒E+E⇒E+E*E2.E⇒E*E⇒E+E*EЗаметим, что в порождении 1 второе E заменяется на E * E, тогда как в порождении 2 —первое E на E + E.

На рис. 5.17 показаны два действительно различных дерева разбора.220Стр. 220ÃËÀÂÀ 5. ÊÎÍÒÅÊÑÒÍÎ-ÑÂÎÁÎÄÍÛÅ ÃÐÀÌÌÀÒÈÊÈ È ßÇÛÊÈ∗+∗+a)б)Рис. 5.17. Два дерева разбора с одной и той же кронойРазница между этими двумя порождениями значительна. Когда рассматриваетсяструктура выражений, порождение 1 говорит, что второе и третье выражения перемножаются, и результат складывается с первым. Вместе с тем, порождение 2 задает сложение первых двух выражений и умножение результата на третье.

Более конкретно, первоепорождение задает, что 1 + 2 * 3 группируется как 1 + (2 * 3) = 7, а второе — что группирование имеет вид (1 + 2) * 3 = 9. Очевидно, что первое из них (но не второе) соответствует нашему понятию о правильном группировании арифметических выражений.Поскольку грамматика, представленная на рис. 5.2, дает две различные структурылюбой цепочке терминалов, порождаемой заменой трех выражений в E + E * E идентификаторами, для обеспечения уникальности структуры она не подходит. В частности, хотя она может давать цепочкам как арифметическим выражениям правильное группирование, она также дает им и неправильное. Для того чтобы использовать грамматику выражений в компиляторе, мы должны изменить ее, обеспечив только правильноегруппирование.

†С другой стороны, само по себе существование различных порождений цепочки (чтоне равносильно различным деревьям разбора) еще не означает порочности грамматики.Рассмотрим пример.Пример 5.26. Используя ту же грамматику выражений, мы находим, что цепочкаa + b имеет много разных порождений. Вот два из них.1.E⇒E+E⇒I+E⇒a+E⇒a+I⇒a+b2.E⇒E+E⇒E+I⇒I+I⇒I+b⇒a+bЗаметим, что настоящей разницы между структурами, заданными этими двумя порождениями, нет.

Каждая из них говорит, что a и b — идентификаторы, и что их значениянужно сложить. В действительности, оба эти порождения приводят к одному и тому жедереву разбора, если применяются конструкции теорем 5.18 и 5.12. †Два примера, приведенные выше, показывают, что неоднозначность происходит не отмножественности порождений, а от существования двух и более деревьев разбора. Итак,мы говорим, что КС-грамматика G = (V, T, P, S) является неоднозначной, если найдетсяхотя бы одна цепочка w в T*, для которой существуют два разных дерева разбора, каждое5.4. ÍÅÎÄÍÎÇÍÀ×ÍÎÑÒÜ Â ÃÐÀÌÌÀÒÈÊÀÕ È ßÇÛÊÀÕСтр.

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

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

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