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

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

DJVU-файл Теория синтаксического анализа, перевода и компиляции - Том 1 (Теория синтаксического анализа, перевода и компиляции), страница 9 Основы построения трансляторов (78): Книга - 5 семестрТеория синтаксического анализа, перевода и компиляции - Том 1 (Теория синтаксического анализа, перевода и компиляции) - DJVU, страница 9 (78) - СтудИз2013-09-12СтудИзба

Описание файла

DJVU-файл из архива "Теория синтаксического анализа, перевода и компиляции", который расположен в категории "". Всё это находится в предмете "основы построения трансляторов" из 5 семестр, которые можно найти в файловом архиве НИУ «МЭИ» . Не смотря на прямую связь этого архива с НИУ «МЭИ» , его также можно найти и в других разделах. Архив можно найти в разделе "книги и методические указания", в предмете "основы построения трансляторов" в общих файлах.

Просмотр DJVU-файла онлайн

Распознанный текст из DJVU-файла, 9 - страница

То же самое можно сформулировать по-другому. Существуют отображения, которые нельзя задать никакими частичными алгоритмами, а также такие отображения, которые можно задать частичными алгоритмами, но нельзя всюду определенными. Мы увидим далее, что эти понятия имеют фундаментальное значение для теории программирования. В равд. 0.4.5 будет приведен прямер частичного алгоритма, для которого, как можно показать, не существует эквивалентного (всюду определенного) алгоритма.

0.4.4. Задание алгоритмов В предыдущем разделе было неформально определено, что мы понимаем под алгоритмом, частичным или всюду определенным. Можно дать строгие определения этих терл)ннов, используя разные формализмы. Существует много формальных способов описания алгоритмов. Отметим следующие: (1) Машины Тьюринга [Тьюринг, 1936 — 1937'1. (2) Грамматики Хамского типа 0 [Хомский, 1959а, 1963). (3) Алгоритмы Маркова [Марков, 19511. (4) Лямбда-исчисление [Черч, 1941). (5) Системы Поста [Пост, 1943).

(6) ТАГ-системы [Пост, 19651. (?) Большинство языков программирования [Саммет, 19691. родолжить. Здесь важно отметить, что ЭТОТ списОк можно пгодо о итм, записанный в одном из этих формализмов, можно прм записанным в любом другом из этих о мализмов, В этом смысле все перечисленные формализмы же экви ивалеитны. Че ч и Тьюринг выдвинули гипотезу, что Много лет назад ерч и ь о аз мно назвать любой вычислительный процесс, который можно разумн алго итмом, можно прои моделировать на машине Тьюринга. Эта ак тезис Чгрча — Тьюринга и является о щоб егииотсза известна как т бравом, наиболее общий класс множе ств п инятой.

Таким о разо олжен с кото ым иам пр иходится встречаться на практике, д я классе рекурсивно перечнслимых множеств. содержаться в классе Ге по к айней мере Болыпинство языков программирования, р " в принципе, пригод р, р годиь) для задания любого частичного алгоритма.

В гл. 11 (том > мы увид 2) им, к чему приводит эта их спосоонос когда мы пытаемся Оптимизировать программы. "4 не б дем здесь обсуждать детали формализмов, предпатя некото ые из них знач енных для описания алгоритмов, хот в ение в эту область ' Р появятся в упражнениях. Очень доступное в ед со е жится в книге Минского [19671'). В нашей книге, как мы уже же видели для описания алгоритмов используется неформальная запись. 0„4д. Проблемы Слово проблема мы будем употреблять довольно специфическим образом. Определение. Проблема (или вопрос) — зто утверждение (предикат), истинное или ложное в зависимости от значений вхонего неизвестных (переменных) определенного типа.

дящих в него м гово им, что П блема обычно формулируется как вопрос, и мы р ответ на вопрос — „да", если это утверждение истинно, н „нет" если утверждение ложно. Пример 0.18. Примером проблемы служит следующее утверждение: „Целое число х меныпе целого числа 1>". Это утверждение можно выразить в более разговорном виде, устранив упо. минание о типе переменных х и и и придав ему форму вопросао йх меньше ПТ' () Определение. Чпгтный случай проблемы — это набор допустимых значений ее неизвестных.

Например, частными случаями проблемы примера 0.18 являются упорядоченные пары целых чисел. 1) можно порекомендовать также кккгу мальцева 119651.— прим, перев. 43 ГЛ. О. ПРВДВАРИТВЛЬНЫа »4АТИМАТИс!ЕСХИЕ СВЬДР ИИЯ Отображение множества частных случаев проблемы во множество (да, нет) называется решением проблемы. Если это отображение можно задать алгоритмом, то проблема называется (алгоритмически) разрешимой. Если алгоритма, определяющего это отображение, нет, то проблема называется (алгоритмически) неразрешимой. Одним из выдающихся достижений математики ХХ века было открытие алгоритмическн неразрешимых проблем. Позднее мы увидим, что неразрешимые проблемы серьезно затрудняют развитие широко применимой теории вычислений. Пример 0.19. Исследуем проблему: „Является лн частичный алгоритм Р (всюду определенным) алгоритмом?" Анализ этой проблемы покажет, почему некоторые проблемы оказываются неразрешимыми.

Сначала предположим, что все частичные алгоритмы описываются в некоторой формальной системе вроде тех, что были упомянуты ранее в этом разделе. В любом формальном языке, предназначенном для задания алгоритмов, можно, оказывается, описать только счетное число алгоритмов. Хотя мы не можем доказать это здесь в общем виде, рассмотрим один пример формализма — язык „абсолютиыхо машинных программ, а другие упомянутые формализмы отложим до упражнений. Любая программа в абсолютном машинном языке представляет собой конечную последовательность нулей и единиц (которые можно представлять себе сгруппированными в машинные слова по 32, Зб, 48 или другому числу знаков).

Допустим„у нас есть цепочка из нулей и единиц, представляющая программу в машинном языке. Зтой программе можно приписать натуральное число (номер), соответствующее ее положению в некотором полном упорядочении всех цепочек из нулей и единиц. Одно такое упорядочение можно получить, расположив цепочки по возрастанию их длин, а цепочки равной длины упорядочив лексикографически (при этом каждая цепочка рассматривается как двоичное число).

Так как число цепочек любой заданной длины конечно, то любой цепочке из множества (О, 1) * будет поставлено в соответствие некоторое целое положительное число. Первые несколько пар этого биективного соответствия приведены в табл. О.1. Таким образом, мы видим, что для каждой программы в машинном языке можно однозначно найти соответствующее целое положительное число и для каждого такого числа можно найти некоторую программу. Какой именно формализм выбирается для описания частичных алгоритмов, не имеет значения: всегда можно установить взаимно однозначное соответствие между частичнымн алгоритмами и целыми положительными числами. Таким образом, имеет смысл говорить об !'-м частичном алгоритме в любом данном ааи АЛГОРИТМЫ 1ЧАСТИЧ ИЫВ И ВСЮДУ ОПРВДРЛЕ У!ИЫВ алгоритмическом формализме.

Более того, это соответствие между алго горитмами и числами достаточно просто, так что по данному числу ! можно записать соответствующий алгоритм, а по данному алгоритму найти соответствующее число. Предположим, что существует частичный алгоритм Р,, который является (всюду определенным) алгоритмом, на его вход Таблица Од Число Цепочка е 0 ! 00 о! !о !! 000 00! подаются описания частичных алгоритмов в нашем формализме н он выдает ответ,дао для данного входа тогда и только тогда, !Тогда этот вход описывает (всюду определенный) алгоритм. Все известные формализмы, используемые для описания частичных алгоритмов, обладают тем свойством, что можно простыми способами комбинировать алгоритмы, получая таким образом новые алгоритмы.

В частности, если даи гипотетический алгоритм РР то можно построить алгоритм Р», который работает следующим образом: Алгоритм Р,. Вход. Любой частичный алгоритм Р, имеющий одну входную переменную. Выход. (1) еНет", если (а) Р не является алгоритмом или (6) Р является алгоритмом и Р (Р) =,дз", '(2) „Да" в остальных случаях. Запись Р(Р) означает, что мы применяем частичный алгоРитм Р к описанию его самого Метод. (1) Если Р,(Р) =„да", то перейти к шагу (2); в противном случае выдать на выходе „нет" и остановиться. (2) Если Р— алгоритм и его входы — описания частичных алгоритмов, в выходы †отве ,да" и „нет", то алгорит51 Р» пРименяет алгоритм Р к самому себе, т.

е. к своему описанию. 45 ГЛ. В ПРЕДВЛРИТЕЛЬ НЫЕ МАТЕМАТИЧЕСКИЕ СВ ЕДЕ НИЯ (При этом предполагается, что по описанию частичного алгоритма можно установить, имеют ли его входы и выходы указанный вид. Для известных формализмов это предположение верно.) (3) Рь выдает „нет" или,да", если Р выдает „да" или кисти соответственно. Г3 Ьфы видим, что Є— (всюду определенный) алгоритм, если Р— алгоритм. При этом Р„ имеет одну входную переменную. о что же делает Р„, когда он сам подается на свой входу По предположению алгоритм Р, определяет, что Р„ †алгори (т. е.

Р~(Рь) =-„да"), затем Р„ моделирует себя на себе, т. е. свое поведение на своем описании, взятом в качестве входа. Но тогда Р„не может дать непротиворечивый результат. Если Р„устанавливает, что моделирование дает результат „да", то Рь дает на выходе результат „иет". Но алгоритм Р„определен так, что в применении к самому себе он должен давать ответ,да". Аналогичный парадокс возникает, если Рь обнаруживает„что моделирование дает результат „нет".

Отсюда мы должны заключить, что предположение о существовании алгоритма Р, ошибочно, и, следовательно, проблема „является ли Р алгоритмому" неразрешима для любого известного алгоритмического формализма. Е;) Следует подчеркнуть, что проблема разрешима тогда и только тогда, когда существует алгоритм, который для любого частного случая этой проблемы дает ответ „да" или инет". Для конкретных частных случаев проблемь! иногда можно получить ответ „да" или „нет".

Но это еще не делает проблему разрешимой. Для того чтобы можно было говорить о разрешимости проблемы, нужно дать единый алгоритм, работающий для всех частных случаев проблемы. Следует особо отметить, что очень важную роль играет кодирование частных случаев проблемы. Обычно подразумевается некоторое „стандартное" кодирование (кодирование, для которого существует алгоритм, отображающий коды описаний алгоритмов в эквивалентные программы ма!пни Тьюринга). Если используются нестандартные кодирования, то неразрешимые проблемы могут стать разрешимыми.

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