Главная » Просмотр файлов » Кук Д., Бейз Г. - Компьютерная математика

Кук Д., Бейз Г. - Компьютерная математика (1048841), страница 43

Файл №1048841 Кук Д., Бейз Г. - Компьютерная математика (Кук Д., Бейз Г. - Компьютерная математика) 43 страницаКук Д., Бейз Г. - Компьютерная математика (1048841) страница 432017-12-27СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

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

Следовательно, мы не получаем тот же самый язык, нз чего и следует требуемый результат. Р Подобные противоречия могут быть получены во многих ситуациях, когда информация, содержащаяся в более ранней части строки, влияет на требуемую структуру последующей подстроки. Следующий пример является типичным в этом отношении. Пример 3.4. Язык г (1г: ршХ, р — простое число) не является контекстно-свободным: Ь (11, 111, 11111, ). Предположим, что г' является КСЯ. Так как существует бесконечное множество простых чисел, то имеется простое число о такое, что 14 пщрлу, пх Л, по'ия'р ш г для всех 1 а Х (это следует из приведенной выше леммы).

Таким образом, существуют а, Ь, с, Н, е такие, что 1' 1'Р1'1Ч' при Ь+Н) О и 1 = а'(1 ) 1" (1") 1'знг для всех 1шХ, так что д а+Ь+с+П+е= простое число и у~1, а о, а+с+а+(Ь+г()1 — простое число для всех 1шХ. В частности, д — простое число при 1 а+ Ь+с+ И+ а+ 1, и в этом случае д,=(а+с+а)+(Ь+ с) (а+ Ь+ с+И+ е+1) (а+ с+ е)+(Ь+ Н) ((а+ с+ е)+(Ь+ И)+ 1) ((а+ с+ е)+(Ь+ и) ) (1+(Ь+ и) ) д(1+ Ь+ И). Однако д) 1 и Ь+ О+1) 1; следовательно, р® не является простым числом для всех (ш Х, и мы получаем противоречие. Поэтому т' (1г: р ш Х, р — простое число) не является КСЯ. г" Этот пример также демонстрирует практическую важность связанного и несвязанного синтаксисов.

Можно придумать жесткий фиксированный синтаксис, который И! включает правильную семантику. Однако, где это вовможно, часто гораздо удобнее и аффективнее разрешить испольвование более широкого яаыка, порожденного (обычно контекстно-свободной) грамматикой, а ватам, если необходимо, сузить множество путем дальнейшей семантической проверки.

В примере 3.4 мы могли бы испольаовать правило 8- 1Я11, чтобы породить все строки Р: д) 1, и после этого проверить, что «д — простое число», с помощью подходящего арифметического алгоритма. Короче говоря, контекстно-вависимые грамматики являются сложными и не изучены с достаточной полнотой. С другой стороны, контекстно-свободным грамматикам уделяется достаточно много внимания, и они составляют основу почти всех практических компьютерных трансляционных систем. У п р а ж н е н н е 8.3.

1. Вывести КСГ, которая порождает множество всех строк над (а, Й, имеющих равное количество а и 6. 2. Построить грамматики, порождающие следующие языки: а) (а'" п>1) б) (а"6~ '. и, т > 1); в) (а"б": и > 1), и, и ж Х. 3. Используя лемму о разрастании, показать, что язык Е (а: ненг(( не является контекстно-свободным. 4. Показать, что если Ь| и Ьр являются КСЯ, то таким же является язык Ь~ У Ем 5. Доканать, что множества (х"р"з: и'-1, и> 1), (х р"х": п> 1, т> 0 являются КСЯ; покаэать, что если яаыки Ь| и Ег являются контекстно-свободными, то отсюда не следует, что явык Ь~ д Еа является контекстно-свободным, 5 4. Понятия грамматического разбора и грамматических модификаций Наиболее непосредственный и очевидный контакт, который средний пользователь имеет с процессами перевода (трансляцией с одного языка на другой),-это использование различного рода компиляторов для таких языков высокого уровня, как Паскаль, Фортран, Кобол, Алгол и др.

При использовании такого языка программа, которую мы написали, транслируется в эквивалентную программу в машинном коде (объектную програшму), которая может быть расшифрована и выполнена компью« тером. Общая схема компиляции изображена на рис. 8.6. Исходвак программа ! л,, г„, тор Лексическая форма — — — 'Хаблица символов ! Дерево грамматического разбора Генератор кода Объектная программа Оптимизатор Оптимизированная объектная программа р .ав В общем случае стадии процесса компиляции могут рассматриваться связанными последовательно, как это изображено на диаграмме; однако на практике они часто выполняются одновременно. Генерация кода требует зна.

ния семантических интерпретаций, которые связаны о 383 каждой синтаксической структурой внутри программы, Для оптимизации машинного кода необходимо знать тонкости строения машины. Мы пе будем рассматривать эти стадии, а ограничимся лишь обсуждением трансляции ключевой программы в дерево грамматического разбора. Ключевая (исходная) программа является просто строкой символов. Внутри атой строки часто встречаются некоторые комбинации символов, в которых отдельные символы не имеют смысла, однако комбинация символов передает смысл. (См. пример 2 1; «доя» имеет значение, а буква «о» внутри «бой», очевидно, отдельно не несет смысловой нагрузки.) Такие составные символы, называемые также лексемами, не являются абсолютно необходимыми и могут не использоваться в некоторых языковых трансляторах, однако обычно опи существуют и кодируются одним символом (для каждой комбинации свой символ), чтобы сократить длину исходной программы (на данныи момент в ее лексической форме) и избежать необходимости рассматривать ненужные детали на следующих этапах.

Типичными лексемами являются: а) ключевые слова, т. е. слова с постоянным значением в языке; например, Ьея1п СОТО епб Паскаль, РО Фортран, ч«ЬПе .ОК. +, —, «, / в большинстве языков; б) числа 52, 3$.65 и т. п:„ в) строки или последовательности символов; г) идентификаторы, введенные программистом. Лексемы обычно описываются регулярными грамматиками.

Следовательно, мы свели исходную проблему к грамматическому разбору строки лексем. Графически это означает — заполнить треугольник на рис. 8.7 таким образом, чтобы он в н ...," а„был совместим с продукцией правил грамматики. 4Л. Процедуры приведения. В об- щем случае нам не разрешается изменять строку и ° а»аэ...а„; поэтому вся деятельность до проведения процесса грамматического раабора должна быть направлена на грамматику. Потенциально нам 2И будет необходимо осуществить достаточно сложные преобразования грамматики, чтобы проверить, что все нстерминалы действительно можно использовать в грамматическом разборе. Существует два варианта, в которых нетерминалы могут пе подходить для проведения произвольного грамматического разбора; опишем их формально.

Определение. Пусть С-(У, Т, Р, д) есть КСГ. Тогда говорят, что петерминальный символ Хый является: а) недоступным, если ХФВ и не существует вывода вида д=~-аХр для а, () ~ т'»; б) непродуктигным, если не существует строки (ез ш Т» такой, что Х=ь.у; в) бесполезным, если он недоступен или непродуктивен. Грамматика, не имеющая бесполезных нетерминалов, называется редуцированной. г Ясно, что бесполезные символы не играют никакой роли в построении предложений. Хотя хотелось бы не включать в грамматику бесполезность символов, они могут быть введены алгоритмами, предназначенными для модификации грамматики с целью соответствия некоторым требованиям (см.

нил~е). Бесполезные символы не обязательно увеличивают размер грамматического разбора, и сейчас мы опишем процесс их удаления. Пусть 0 (У, Т, Р, В) есть КСГ. Определим множество У' как Л' УО(т), где т — новый символ (г Ф т'), и отношение р на У' сле- дующим образом: (А, В)~ар, если А- аВ()жР при А, ВжУ, сг, ()ж'т'»; (А, т)ыр, если А - (ыР при кеко- тором (ж Т». Предложение.

а) А доступно тогда и только тогда, когда А 8 или (В, А)ыр+; б) А является продуктивным тогда и только тогда, когда (А, т)1и р+. Доказательство. а) А доступно тогда и только тогда, когда существует вывод вида В=г аАр для а, рж У» или, что зквивалент- 2И но, тогда и только тогда, когда существует (Э-О такое, что я ...

Ао Когда ЯФА, это имеет место лишь в случае Яр+А; по~ этому (Я, А)жр+. б) А продуктивно тогда и только тогда, когда А=о.у для некоторого ~ > О и (ж Т*, т. е. тогда и только тогда, когда существует последовательность сентенциальных Форм ао, аь °, а; таких, что А ~ ао ~ а~ ~- ... =о. а, т, т. е. когда существует последовательность А =Ао, Аь ... ..., А, 1ои Л~ такая, что А, является подстрокой а„ и, следовательно, АорА ь А~рАо, °, А -орА<-ь А -1-+ ~), где ~) — подстрока (, т. е. АорАь А1рАо, ..., А< ~рт.

По- этому Ар+т. Р На практике р+ можно вычислять, используя алго- ритм Уоршолла. Пусть У„~)У вЂ” множество бесполезных символов 6 и У =М\М„, Р Р'~Р„, где Є— множество продукций, содержащих элементы У„. Тогда 6' (Ж', Т', Р', Я), где Т' — мноноество терминальных символов, по- являющихся в продукциях Р', эквивалентно КСГ без бесполезных символов. Алгоритм.

Удаление бесполезных символов. Вход: КСГ 6 (У, Т, Р, Я). Выход: эквивалентная КСГ 6' (Л", Т', Р', Я) без бесполезных символов. Метод: построить )У', Т', Р', как указано выше. г П риме р 4.т. Рассмотрим грамматику 6 ((А, В, С, Р), (х, у, р, д, и~, а), Р, А), где Р (А -+х~уРС~Р, В-+д(Вх, С- Сх!уС, Р- Ра~Си~р). Искользуем отношение р, определенное выше, и его предотавление в матричной ф~рме: АВСРт А В м(р) =с Р О О г $ 0 $ О О г О О Х О О О О т $ О О О О о В этом примере имеем М(р+)=М(р)=М. Таким образом, М,=М„-О, и поэтому В недоступно, а С непродуктивно.

Следовательно, грамматика сводится к 6' ((А, Р), (х, а, р), Р', А), где Р' = (А - х~Р, Р ~- Ра!р). » После удаления бесполезных символов каждый оставшийся нетерминальный символ Х встречается по крайней мере в одном дереве вывода (рис. 8.8) с Х, связанным вверх с Б и вниа с некоторыми терминальными строками а~...а . /~~!Ь Один «очевидный» путь грамматического разбора строки— ато вывести все строки, отметить их соответствующие канонические последовательности, а затем про- /) верить предложение, сравнивая его с каждой строкой. При совпадении использовать выводящую ... и а» - ° ° - и последовательность, чтобы определить дерево грамматического Рвс.

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

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

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

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