Главная » Просмотр файлов » 1626435695-d1df5d2e6d953ce7ad4b4ccb5f4f4e30

1626435695-d1df5d2e6d953ce7ad4b4ccb5f4f4e30 (844296), страница 46

Файл №844296 1626435695-d1df5d2e6d953ce7ad4b4ccb5f4f4e30 (Котов, Сабельфельд 1991 - Теория схем программ) 46 страница1626435695-d1df5d2e6d953ce7ad4b4ccb5f4f4e30 (844296) страница 462021-07-16СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

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

Здесь также используется обычный программистский прием. .Элементы Ны И», ..., д„ состояния магазина М становятся элементами состояния массива Ам с теми же порядковыми номерами. 'Нулевой элемент состояния массива и элементы с номерами боль'ше и равны 1(А) или содержат так называемый «мусор». Значение ;, четчика в процессе выполнения построеннной интерпретиро''ванной схемы с массивами указывает на «верхушку магазина» ;.и массиве Ам. П) Т е о р е м а 9.9.

Классы У (А) и,'У (М) равнсмои)ны. Д о к а з а тел ь с т в о. Прямое следствие из теорем 9.7 )и 9.8. П 3 а д а и и е 9А. Покажите, что классы Я (А) и,9' (»А) рави«мощны. 2.5. Магазинные и рекурсивные схемы. В этом разделе мы по,,кажем, что рекурсивные схемы транслируются в магазинные, ."и зто не является неожиданностью, так как почти все практичес,'кие методы реализации рекурсии основаны на применении мага(:зинной (или становой) памяти.

з» 2»1 В предыдущей главе установлено, что рекурсивные схемы транслируются в схемы с процедурами. Поэтому достаточно продемонстрировать транслируемость класса ~х'(Р) в класс магаанниых схем. Описываемый алгоритм трансляции включает как первый этап трансляцию схем с процедурами в класс схем с одним матаакном, но эти схемы обогащены дополнительным средством, а именно — метками-символами и специально выделенной переменной, значениями которой являются метки.

Таким образом, метки-символы могут запоминаться, в том числе в магазине, и затем использоваться в переходах. Этот этап трансляцки отслеживает практические методы реализации рекурсии, На втором этапе осуществляется освобождение магазинной схемы от меток, и результатом является схема из класса У (1М). Промежуточная магазинная схема с метками принадлежит классу .У (1М, л.).

Схемы нэ этого класса — схемы с одним магазином и со следующими особенностями: а) инструкции не имеют числовых меток, но могут помечаться метками-символами; б) базис класса содержит выделенную интерпретированную переменную, областью значений которой является множество меток (Ь„Ьм..., Ь ); в) все переходы в инструкциях присваивания и условных операторах — метки-символы или выделенная переменная; г) кроме того, выделенная переменная и может входить только в специальные операторы засылки метки (ю:= л",) и в операторы над магазином (М:= и, ю:= М).

Смысл использования меток-символов, выделенной переменной и модифицированных операторов при выполнении интерпретированных схем иа класса У(1М, А) не требует специальных пояснений. Л е м м а 9.1. Классы рекурсивных схем и схем с процедурами трапслируемы в класс г" (1М, А). Д о к а з а т е л ь с т в о. Рекурсивная схема транслируется в схему с процедурами посредством алгоритма из теоремы 8.6.

Пусть 2 = (г, г„..., г ) — множество переменных, получающееся в результате объединения памяти главной схемы и памяти всех схем процедур исходной схемы с процедурами. Каждая инструкция вызова к: г:= г"';"~ (у„..., у„) на т з аменяется следующим фрагментом: к: М:= г1,..., М:= г, — запоминание состояния памяти перед переходом к процедуре; и:=Ь вЂ” запоминание метка возврата; М;=ю х:= у„..., х„:= у„иа Ьг — передача аргументов в за.

головок процедуры и переход к процедуре; Х: г:= г на л« вЂ” переменной г присваивается вычисленное значение функции, где М вЂ” магазин; и — выделенная переменная для хранения меток-символов; г — новая переменная, г Я~ Е; Х вЂ” метка-символ возврата. Заголовок каждой схемы процедуры Р,(х„ ...,х„) и оператор старт злимвнируются, а метка 1 в теле процедуры заменяется меткой Хг . Оператор стоп (о) в теле каждой схемы процедуры заменяется фрагментом г:= о, и:= М г,:=М,...,г,:=-М на ю, Результат такого преобразования — магазинная схема с одним магазином М и метками-символами, которые используются наря- ду с метками-числами.

Очевидным способом метки-числа можно элимн пировать, заменив их в переходах метками-символами. Полученная схема Яь принадлежит классу г' (1М, Х). В том, что схема Яь и исходная схема эквивалентны, убеждает содер- жательный анализ алгоритма трансляции. Магазин М может хранить любое число меток-символов и последовательных набо- ров значений переменных из 2. Прн рекурсивном вызове «старые» значения этих переменных запоминаются в магазине вместе с меткой возврата, указывающей контекст вывоза, т. е. следующий оператор, на который следует вернуться после того, как будет получено значение вызываемой функции. Когда значение функ- ции найдено, восстанавливается контекст и значения переменнь|х в этом контексте. Магазин оказывается пустым после возврата в главную ' схему.

Д В качестве примера приведем магазинную схему с метками Б «, эквивалентную рекурсивной схеме Я л (см. пп. 1.2 и 2.3 предыдущей главы) и схеме с процедурамн 3~л« (см. и. 4.1 той жв главы). Напоминаем, что для этих схем не существует эквивалент- ных стандартных и счетчиковых схем. Ю«».' Р (х) Р (х) = если р (х) то х иначе Х (Р (у (х)), Р (Ь (х))), Я ««. (старт (х), 1: у:= Р (х)„ 2: стон (у)), Р (х) = (старт, 1: если р (х) то 2 иначе 3, 2:э:=х на 8, 3: г:=у(х), 4: г:= Р (г)„ 5: и:= й(х), 6: и:.= Р (и), 7: е «= Х (г, и), 8: стоп (э)).

213 Условимся в примерах изображать последовательность опера. торов М:=- у„..., М:= у, одним «оператором групповой за- писи з магазин»: М:= (у„..., у„), а последовательность опера- торов у,:= М,..., у,:= М вЂ” одним еоператором групповой выборки из магазинам (у„..., у,):= М. Аналогично, (х,... ..., х„):= (у,,..., у„) — сокращенная запись «последователь- ной групповой пересылииг х,:= у,..., х,:= у„.

Яг «» (старт (у, х, з, и, о), М:= (у, х, з, и, и), .= Х'« М:= »э, х:=х на Хе, Х«» у стоп (у), Хе. 'если р (х) то Х иначе Х«, Х»» о:= х иа Х,», Х«: з:= д(х), М:= (у,х,з, и,о), ш»=Х« М:=ш, х:= г на Хэ, Ха. х:= 1, и:= Й (х), М:= (у,х,з,и,о), Хы М:= ш, х «'= и на Х», Х;. о:= ( (з, и), Х». 1:= о, »э:= М, (о,и,з,х,у):=М иа ш). Л е м м а 9.2. Путь Я вЂ” схема с процедурами, Х вЂ” инп»ер- праяация и во время выполнения программы (Ю„Х) некоторая про- цедура вызываеп»ся рекурсивно, т.

е. косее некоторого шага началь- ный оператор тела этой процедуры выполнялся и раз (и ) 1), а заключительный оператор — ни разу. Тогда для того, чтобы заключи»пельный оператор тела втой процедуры выполнялся и раз, необходимо, чтобы некоторый условный оператор р (х»,... ..., х,) выполнился дваясды при разных состояниях памяти И' и »у Х (р) (И'(~ ) ° - ' гу (~»)) чь Х (р) (Т+ ((~). ° ° ' »у (~»))- Доказательство.

Пусть й„й„...,й — последова- тельность меток инструкций тела процедуры, выписанная в том порядке, в котором эти инструкции выполняются в программе (Я, Х), причем Й =- 0 — метка начального оператора тела про- цедуры, выполненного первый раз, й, = Π— метка того же опе- ратора, выполненного и-й раз, и в этой последовательности нет ни одного вхождения метки заключительного оператора тела этой процедуры. Далее, пусть й;, й«,..., к„— последовательность 214 меток операторов тела процедуры, где й» = Π— метка я-го выполнения начального оператора тела, а й; — метка первого выполнения заключительного оператора тела процедуры. Если г ч. т, то й„' чь й, так как к„' — метка заключительного оператора, а й не может метить заключительный оператор. Если т~ т, то й Фй, так как к =О, а к' не может метить начальныи оператор тела процедуры. В обоих случаях видно, что начала последовательностей меток совпадают (по крайней мере, кь = = к,'), но затем последовательности различаются.

Это значит, что сунзгствует такое ь, 1 ( 1( ппп (т, г), что Й, = к;, но й,, чь чь к ы. Но зто может быть только в том случае, если й~ и к;- — два вхождения метки одного и того же условного оператора, причем результаты его выполнения в первом и во втором случае различны. ( ) Л е м м а 9.3. Есги Я вЂ” приведенном схема с процедурами (см. п. 4.2 гл. 8), то для любой интерпретации 1, прежде чем выполнится хотя бы один раз заключительный оператор в теле любой процедуры, дважды вычисляется некоторый, один и тот же, предикат 1 (р) при двух различных наборах аргументов (б„... ..., НД и (И(,..., И(), причем 1(р)(И„..., И,) ~1 (р) (б(,...

..., 4). Д о к а з а те л ь с т в о. Так как схема Я получена частичной трансляцией некоторой схемы с процедурамн, в главной схеме есть фрагменты-копни всех тел схем процедур и все оставшиеся в главной схеме вызовы — рекурсивные вызовы. Поэтому перед выполнением заключительного оператора в теле любой процедуры обязательно дважды вычнслится один и тот же преднкат, причем его значения будут различны (см. лемму 9.2). ( ) Л е м м а 9.4. Магазинные схемы из класса т' (1М, А), полученные трансляцией рекурсивных схем или схем с процедурами, транслируемы в магазинные схемы из класса т'(1М). Д о ка з а те л ь с т в о. Пусть магазинная схема Юс с метками получена из рекурсивной схемы или схемы с процедурами с помощью алгоритма трансляции, описанного в доказательстве. леммы 91. Пусть М вЂ” магазин в схеме Яс, ю — единственная выделенная переменная, значениями которой являются метки 1, Ь„..., А .

Магазинная схема Я из класса У(1М), эквивалентная схеме Юс, строится из й + 1 вспомогательной схемы из класса У (1М), где й — число предикатных символов в схеме Юс. Среди этих вспомогательных схем есть схема Яз, которую Грие и Кон- . стебль (92) назвали локатором, и схемы Ю,, Яг,..., Яю названные ими ркимитаторами схемы Юы 1 < 1 ~ (й. Схема р,-имитатор эквивалентна схеме Яс на множестве всех тех интерпретаций 1, в которых 1 (р) обладает некоторым заданным свойством (о немречь пойдет ниже). Схема локатор Я обнаруживает в схеме Яь предикатный символ, который для данной интерпретации 1 обладает заданным свойством, а если такого предикатяого символа. н е найдется, то локатор игнорирует рпимнтаторы, так как в этом случае оя сам способен повторить вычисления программы (Бы 1), пе используя переменную ш.

Построение р-имитатора. Сначала покажем, как строится р-имитатор схемы Бь для произвольного предикатного символа р. Для простоты полагаем, что р — одноместный символ. Переменной ш из схемы Бь в р-имитаторе соответствует т переменных ш„ ш, ..., ш , где т — число меток в схеме Бс,. Преобразование схемы в р-имитатор осуществляется следующим образом: а) каждый оператор присваивания ш:= Аь 1 ~ Ь*~ ~го, заменяется последовательностью операторов ш,:=- а, ..., ш,,:= а, ш~ .=- Ь, ш;,1:= а, ..., ш„,:= а, где а и Ь вЂ” некоторые константы, добавляемые в базис схемы Бь, б) каждый оператор ш:= М заменяется последовательностью операторов ш:= М,..., ш,:=- М; в) каждый оператор М:= ш заменяется последовательностью операторов М:= ш„..., М:= ш; г) каждый оператор присваивания х:= т иа ш ааменяется фрагментом (рис.

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

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

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

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