Главная » Просмотр файлов » Хопкрофт, Джон, Э., Мотвани, Раджив, Ульман, Джеффри, Д. - Введение в теорию автоматов, языков и вычислений

Хопкрофт, Джон, Э., Мотвани, Раджив, Ульман, Джеффри, Д. - Введение в теорию автоматов, языков и вычислений (1082271), страница 46

Файл №1082271 Хопкрофт, Джон, Э., Мотвани, Раджив, Ульман, Джеффри, Д. - Введение в теорию автоматов, языков и вычислений (Хопкрофт, Джон, Э., Мотвани, Раджив, Ульман, Джеффри, Д. - Введение в теорию автоматов, языков и вычислений) 46 страницаХопкрофт, Джон, Э., Мотвани, Раджив, Ульман, Джеффри, Д. - Введение в теорию автоматов, языков и вычислений (1082271) страница 462018-01-11СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

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

и „, для которых справедливо следующее. 1. Если Х, является терминалом, то ле, =Х, т.е. и, представляет собой одинединственный терминал из продукции. Если Х вЂ” переменная, то и, представляет собой цепочку, о которой уже сделан вывод, что она принадлежит языку переменной Х. Таким образом, этот вывод относительно ли, содержит не более н из п+ 1 шагов вывода, что лв принадлежит языку А. Этот вывод не может содержать все п+ 1 шагов, поскольку заключительный шаг, использующий продукцию А — ьХХз...Хл, безусловно, не является частью вывода относительно ин Следовательно, мы можем применить предположение индукции к и, и заключить, что существует дерево разбора с кроной н, и корнем Х. Г/~ ЛЛ Л Рис.

5.9 Дерево, использованное в индуктив ной части доказательства теоремы 5.! 2 Рис. 5.8. Дерево, настроенное длл базиса теоремы 5.12 201 5.2. ДЕРЕВЬЯ РАЗБОРА Далее мы построим дерево с корнем А и кроной н в соответствии с рис. 5.9. Там показан корень с отметкой А и сыновьями Хп Хл ..., Х». Такой выбор отметок возможен, поскольку А — > ХХ,...Х» является продукцией грамматики б. Узел для каждого Х становится корнем поддерева с кроной жг В ситуации 1, где Х— терминал, это поддерево состоит из одного листа, отмеченного Х.

Так как в данной ситуации н, =Х, условия того, что кроной поддерева является н „выполнены. Во второй ситуации Х является переменной. Тогда по предположению индукции существует дерево с корнем Х и кроной ив Оно присоединяется к узлу для Х (см. рис. 5.9). Построенное таким образом дерево имеет корень А. Его крона состоит из крон поддеревьев, приписанных друг к другу слева направо, т.е. зк = н ~зкь .. зк».

П 5.2.5. От деревьев к порождениям Покажем, как построить левое порождение по дереву разбора (метод построения правого порождения аналогичен и не приводится). Для того чтобы понять, каким образом можно построить левое порождение, сначала нужно увидеть, как одно порождение цепочки из переменной можно вставить внутрь другого порождения. Проиллюстрируем это на примере. Пример 5.13.

Рассмотрим еще раз грамматику выражений (см. Рис. 5.2). Нетрудно убедиться, что существует следующее порождение. Е =о У ~ 1Ь =о аЬ Отсюда для произвольных цепочек а и )з возможно следующее порождение. аЕ,) =о а7)3 =е а!ЬД ~ ааЬД Доказательством служит то, что головы продукций можно заменять их телами в контексте а и Д точно так же, как и вне его.' Например, если порождение начинается заменами Е=» Е ь Е =о Е+(Е)„то можно было бы применить порождение цепочки аЬ из второго Е, рассматривая "Е»(*' в качестве а и ")" — ~3.

Указанное порождение затем продолжалось бы слелующим образом. Е ь (Е) =о Е ь (l) =е Е ь (1Ь) ~ Е в (аЬ) П Теперь можно доказать теорему, позволяющую преобразовывать дерево разбора в левое порождение. Доказательство проводится индукцией по высоте дерева, которая представляет собой максимальную из длин путей, ведущих от корня через его потомков к листьям. В действительности, именно зта возможность подстановки строки вместо переменной независимо от контекста н породила название "контекстно-свободная*' (соп»аггее).

Существует более мощный класс грамматик, называемых "контекстно-зависимыми" (соп»ехьзепзйгве), в которых подстановки разрешены, только если определенные строки находятся слева н!нлн справа от заменяемой переменной. В современной практике контекстно-завнснмые грамматики большого значе- ння не имеют. 202 ГЛАВА б. КОНТЕКСТНО-СВОБОДНЫЕ ГРАММАТИКИ И ЯЗЫКИ Нц»ример, высота дерева, изображенного на рис. 5.6, равна 7. Самый длинный из путей от корня к листьям ведет к листу, отмеченному Ь.

Заметим, что длины путей обычно учитыюют ребра, а не узлы, поэтому путь, состоящий из единственного узла, имеет длину О. Теорема 5.14. Пусть П = (1», Т, Р, .9) — КС-грамматика. Предположим, что существует дерево разбора с корнем, отмеченным А, и кроной и, где и ц Т . Тогда в грамматике»г существует левое порождение А =»»г. ! Доказательство. Используем индукцию по высоте дерева.

Базис. Базисом является высота 1, наименьшая из возможных для дерева разбора с терминальной кроной. Дерево должно выглядеть, как на рис. 5.8, с корнем, отмеченным А, и сыновьями, образующими цепочку ж. Поскольку это дерево является деревом разбора, А — » ж должно быть продукцией. Таким образом, А =ь ж есть одношаговое левое / порождение»г из А. Индукция. Если высота дерева равна л, где л > 1, то оно должно иметь вид, как на ряс.

558 Таким образом, существует корень с отметкой А и сыновьями, отмеченными слева направо ХХ,...Х». Символы Х могут быть как терминалами, так и переменными. !. Если Х вЂ” терминал„то определим н, как цепочку, состоящую из одного Х. 2. Если Х, — переменная, то она должна быть корнем некоторого поддерева с терминальной кроной, которую обозначим и;. Заметим, что в этом случае высота поддерева меньше п, поэтому к нему применимо предположение индукции.

Следовательно, существует левое порождение Х =ь и,. !т Залегши, ятом=и,и ...»». Построим левое порождение цепочки»г следующим образом. Начнем с шага А =» ХХ,...Х». Затем для» = 1, 2, ..., I» покажем, что имеет место следующее порождение. ь А =» и»»гг...и',Х~-»Х-»...Х» Данное доказательство использует в действительности еще одну индукцию, на этот раз по!. Для базиса» = О мы уже знаем, что А =» Х,Хг...Х». Для индукции предположим, что м существует следующее порождение.

А =»»г,»гг...и, »ХХ, »...Х» I 1. Если Х вЂ” терминал, то не делаем ничего, но в дальнейшем рассматриваем Х как терминальную цепочку н» Таким образом, приходим к существованию следующего порождения. А ~ »г»»гг...иХ,.»Х,-»...Х» 203 5.2.ДЕРЕВЬЯ РАЗБОРА 2. Если Х является переменной, то продолжаем порождением и, из Х, в контексте уже построенного порождения.

Таким образом, если этим порождением является Х =» а, =» а, ... =»»»„ й, й ! то продолжаем следующими порождениями. гггн'г...г» -гХЛ'-!".Хг =» и игиг...ийгагХ.!...Хг ~ и и'ги'г...и', гагЛ,. г...Х» =» ! и'ги'г...и',Л,-гХ г...Х» Результатом является порождение А =»»»гггг...г»,Х гХ г...Х». и Когда ! = Ц результат представляет собой левое порождение гг из А. С) Пример 5.15.

Рассмотрим левое порождение для дерева, изображенного на рис. 5.6. Продемонстрируем лишь заключительный шаг, на котором строится порождение по целому дереву из порождений, соответствующих поддеревьям корня. Итак, предположим, что с помощью рекурсивного применения техники из теоремы 5.14 мы убедились, что поддерево, корнем которого является левый сын корня дерева, имеет левое порождение Е =» У =» а, а поддерево с корнем в третьем сыне корня имеет следующее ! и левое порождение. Е =» (Е) =» (Е+ Е) =» (У+ Е) =» (а+ Е) ~ ! и ! ! (а+У) =» (а+10) =» (а+100) =» (а»ЬОО) /ю и й Чтобы построить левое порождение для целого дерева, начинаем с шага в корне: А =» Е * Е. Затем заменяем первую переменную Е и в соответствии с ее порождением приписываем на каждом шаге *Е, чтобы учесть контекст, в котором это порождение ис- пользуется.

Левое порождение на текущий момент представляет собой следующее. Е =» Е Е » 1» Е » а» Е ! и и Символ * в продукции, использованной в корне, не требует порождения, поэтому указанное левое порождение также учитывает первые два сына корня. Дополним левое по- рождение, используя порождение Е =» (а+ ЬОО), левый контекст которого образован це! почкой а», а правый пуст. Это порождение в действительности появлялось в примере 5.6 и имело следующий вил. 204 ГЛАВА 6. КОНТЕКСТНО-СВОБОДНЫЕ ГРАММАТИКИ И ЯЗЫКИ Е ~ Е "' Е =» 1» Е =» а» Е =» а*(Е) =» а" (Е+Е) =» а*(1+Е) =» а*(а»Е) =» / / / / а * (а + 1) =» а» (а + 10) ~ а ' (а + 100) ~ а * (а + ЬОО) м / /ю Аналогичная теорема позволяет нам преобразовать дерево в правое порождение. Пас/роение правого порождения по дереву почти такое же, как и построение левого.

Здесь, однако, после первого шага А =» Х/Х/...Х/ мы заменяем сначала Хь используя правое порождение, затем Х,, и так далее до Х/. Таким образом, примем без доказательства следующее утверждение. Теорема 5.16. Пусть С = (//, 7; Р, Е) — КС-грамматика. Предположим, что существует дерево разбора с корнем, отмеченным А, и кроной /г, где /г и 7». Тогда в грамматике С существует правое порождениеА =» н. 52.6. От порождений к рекурсивным выводам Теперь завершим цикл, представленный на рис. 5.7, доказав, что если существует по- рождение А =» и для некоторой КС-грачматики, то факт принадлежности и языку А доказывается путем процедуры рекурсивного вывода. Перед тем как приводить теорему и ее доказательство, сделаем важные замечания о порождениях.

Предположим, у нас есть порождение А ~ Х/Х/...Х» =» и. Тогда и можно разбить на подцепочки и = и,и/,..ин где Х =» н,. Заметим, что если Х является терминалом, то н,=Х„и порождение имеет 0 шагов. Доказать это замечание несложно. Вы можете дока- зать индукцией по числу шагов порождения, что если ХХ,...Х„=» а, то все позиции в а„ происходящие от расширения Х, находятся слева от всех позиций, происходящих от расширенияХ, если / < 1. Если Х является переменной, то можно получить порождение Х =» и„начав с поро- жденияА ~ /г и отбрасывая следующее: а) все шаги, не относящиеся к порождению /г/ из Х; б) все позиции выводимой цепочки, которые находятся либо справа, либо слева от позиций, порождаемых из Хь Этот процесс поясняется примером. Пример 5.17. Используем грамматику выражений и рассмотрим следующее порождение.

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

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

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