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

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

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

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

Расскотрим только левые. Пример 5.28. Заметим, что оба дерева разбора, представленные на рис. 5.!8, жееют крону Е+ Е * Е. По ним получаются следующие соответствующие нм левые б) Е =» Е * Е =» Е м Е * Е =» Г м Е " Е ~ а ч- Е * Е =» / ! / ! М а-»У»Е ~ ама*Е ~ ача»1=» а+а»а / м м Заметим, что эти левые порождения различаются.

Данный пример не доказывает теорему, но демонстрирует, как различия в деревьях разбора влияют на выбор шагов в левом порождении. П Теорема 5.29. Для каждой грамматики О = ('г', Т, Р, 5) и»г из Т цепочка зг имеет два разных дерева разбора тогда и только тогда, когда»» имеет два разных левых порождения из 5. Доказательство. (Необходимость) Внимательно рассмотрим построение левого порождения по дереву разбора в доказательстве теоремы 5.14.

В любом случае, если у двух деревьев разбора впервые появляется узел, в котором применяются различные продукции, левые порождения, которые строятся, также используют разные продукции и, сле- довательно, являются различными. (Досиаточносгпь) Хотя мы предварительно не описали непосредственное построение дерева разбора по левому порождению, идея его проста. Начнем построение дерева с корня, отмеченного стартовым символом. Рассмотрим порождение пошагово. На каждом шаге заменяется переменная, и эта переменная будет соответствовать построенному крайнему слева узлу дерева, не имеющему сыновей, но отмеченному этой переменной.

По продукции, использованной на этом шаге левого порождения, определим, какие сыновья должны быть у этого узла. Если существуют два разных порождения, то на первом шаге, где они различаются, построенные узлы получат разные списки сыновей, что гарантирует различие деревьев разбора. П 5.4.4. Существенная неоднозначность Контекстно-свободный язык Е называется сущесгпвепно неоднозначным, если все его грамматики неоднозначны. Если хотя бы одна грамматика языка Е однозначна, то Е является однозначным языком. Мы видели, например, что язык выражений, порождаемый грамматикой, приведенной на рис. 5.2, в действительности однозначен. Хотя данная грамматика н неоднозначна, этот же язык задается еше одной грамматикой, которая однозначна — она изображена на рис.

5.19. Мы не будем доказывать, что существуют неоднозначные языки. Вместо этого рассмотрим пример языка, неоднозначность которого можно доказать, и объясним неформально, почему любая грамматика для этого языка должна быть неоднозначной: Ь = 1а" Ь"с Ы ~ п й 1, и й 1) 1) '1а"Ь с"»1" 1п > 1, и > 1). Из определения видно, что Ь состоит из цепочек вида а и с д, в которых поровну сим- волов а и Ь, а также с и Ы, либо поровну символов а и г1, а также Ь и с. ГЛАВА б.

КОНТЕКСТНО-СВОБОДНЫВ ГРАММАТИКИ И ЯЗЫКИ 226 Ь является КС-язгаком. Очевидная грамматика для него показана на рис. 5.22. Для порождения двух видов цепочек в ней используются два разных множества продукций. Эта грамматика неоднозначна. Например, у цепочки ааЬЬссгЫ есть два следующих левых порождения. !, 5 =з АВ =в аАЬВ =в ааЬЬВ =в ааЬЬссВг2 ~ ааЬЬссе)е2 1 ь и и 5 =з С =в аСез =в ааРг2г2 ~ ааЬРссЫ ~ ааЬЬссг2г2 Соответствующие деревья разбора показаны на рис. 5.23.

В -> АВ)С А -+ аАЬ|аЬ В вЂ” э сВа)) са) С -з аСс)) аРЫ Р -з ЬРс) Ьс Рис. 5 22. Грамматика для существенно неоднозначного языка и Ь Ь е б) Рис. 5.23. Два дерева разбора для ааЬЬссдд Доказательство того, что все грамматики для языка Ь неоднозначны, весьма непросто, однако сущность его такова. Нужно обосновать, что все цепочки (за исключением конечною пх числа), у которых поровну всех символов, должны порождаться двумя различными путями. Первый путь — порождение их как цепочек, у которых поровну символов а и Ь, а таке с и а), второй пуп — как цепочек, у которых поровну символов а и Ы, как и Ь и с.

227 ЬА. НЕОДНОЗНАЧНОСТЬ В ГРАММАТИКАХ И ЯЗЫКАХ Например, единственный способ породить цепочки, у которых поровну а и Ь, состоит в использовании переменной, подобной А в грамматике, изображенной на рис. 5.22. Конечно же, возможны варианты, но они не меняют картины в целом, как это видно из сле- дующих примеров. ° Некоторые короткие цепочки могут не порождаться после изменения, например, базисной продукции А — + аЬ на А †> аааЬЬЬ.

° Мы могли бы организовать продукции так, чтобы переменная А делила свою работу с другими, например, используя переменные А, и Ал из которых А, порождает нечетные количества символов а, а А, — четные: А, -э аАзЬ | аЬ; Аэ — ь аА,Ь ! аЬ ° Мы могли бы организовать продукции так, чтобы количества символов а и Ь, порождаемые переменной А, были не равны, но отличались на некоторое конечное число. Например, можно начать с продукции  — эАаВ и затем использовать А — э аАЬ ! а для порождения символов а на один больше, чем Ь.

В любом случае, нам не избежать некоторого способа порождения символов п, при котором соблюдается их соответстяие с символами Ь. Аналогично можно обосновать, что должна использоваться переменная, подобная В, которая порождает соответствующие друг другу символы с и а( Кроме того, в грамматике должны быть переменные, играющие роль переменных С и !э, порождающих соответственно парные а и д и парные Ь и с. Приведенные аргументы, если их формализовать, доказывают, что независимо от изменений, которые можно внести в исходную грамматику, она будет порождать хотя бы одну цепочку вида а"Ь"с"и" двумя способами, как и грамматика, изображенная на рис.

5.22. 5.4.5. Упражнения к разделу 5.4 5.4.1. Рассмотрим грамматику Б — > а5 ~ або ! и Она неоднозначна. Докажите, что для цепочки ааЬ справедливо следукнцее: а) для нее существует два дерева разбора; б) она имеет два левых порождения; в) она имеет два правых порождения. 5.4.2. (!) Докажите, что грамматика из упражнения 5.4.! порождает те, и только те цепочки из символов а и Ь, у которых в любом префиксе символов а не меньше, чем Ь.

5.4.3. (я!) Найдите однозначную грамматику для языка из упражнения 5.4.1. 5.4.4. (!!) В грамматике из упражнения 5.4.! некоторые цепочки имеют только одно дерево разбора. Постройте эффективную проверку, является ли цепочка одной 228 ГЛАВА б. КОНТЕКСТНО-СВОБОДНЫЕ ГРАММАТИКИ И ЯЗЫКИ из указанных. Проверка типа "проверить все деревья разбора, чтобы увидеть, сколько их у данной цепочки" не является достаточно эффективной. 54.5. (1) Воспроизведем грамматику из упражнения 5.1.2: — А!В А — ь ОА)в  — ь ОВ)!В1в а) докажите, что данная грамматика неоднозначна; б) найдите однозначную грамматику для этого же языка и докажите ее однозначность.

5.4.6. (в1) Однозначна ли ваша грамматика из упражнения 5.1.5? Если нет, измените ее так, чтобы она стала однозначной. - 5,4.7. Следующая грамматика порождает префиксные выражения с операндами т и у и операторами +, - и *: Е -+ + ЕЕ ! * ЕЕ ) - ЕЕ ( х ) у а) найдите левое и правое порождения, а также дерево разбора для цепочки -';*-хуху; б) (1) докажите, что данная грамматика однозначна. резюме Канменсмно-свободные грамматики. КС-грамматика — это способ описания языка с помошью рекурсивных правил, называемых продукциями. КС-грамматика состоит из множества переменных, терминальных символов, стартовой переменной, а также пролукций.

Каждая продукция состоит из головной переменной и тела — цепочки переменных и!или терминалов, возможно, пустой. ь Порождения и языки. Начиная со стартового символа, мы порождаем терминальные цепочки, повторяя замены переменных телами продукций с этими переменными в голове. Язык КС-грамматики — это множество терминальных цепочек, которые можно породить; он называется КС-языком.

ь Певые и правые порождении. Если мы всегда заменяем крайнюю слева (крайнюю справа) переменную, то такое порождение является левым (правым). Каждая цепочка в языке КС-грамматики имеет, по крайней мере, одно левое и одно правое порождения. ь Выводимые леночки. Любой шаг порождения дает цепочку переменных и~или терминалов.

Она называется выводимой цепочкой. Если порождение является левым (правым), то цепочка называется левовыводимой (правовыводимой). РЕЗЮМЕ 229 ь Деревья разбора. Дерево разбора — это дерево, показывающее сущность порождения. Внутренние узлы отмечены переменными, листья — терминалами или е. Для каждого внутреннего узла должна существовать продукция, голова которой является отметкой узла, а отметки сыновей узла, прочитанные слева направо, об- разуют ее тело. ь Эквивалентность деревьев разбора и порождений. Терминальная цепочка принадлежит языку грамматики тогда и только тогда, когда она является кроной, по крайней мере, одного дерева разбора.

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

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

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

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