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

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

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

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

Такие операторы называют операпьоральи гьыоеа процедур. Схема процедуры состоит нз заголовка и тела, разделенных символом равенства. Заголовок аземи процедуры имеет тот же вид, что и левые части Рекурсивных уравнений: Рт > (хь,..., х„). Тело схемы процедуры — это стандартная схема того же тьша, что и главная схема. Заключитель- ный оператор в теле процедуры всегда одноместен (стоп (х)). Па- мять схемы процедуры (т. е.

переменные, входящие в заголовок и тело схемы процедуры) не пересекается с памятью главной схе- мы и памятями других схем процедур. Примеры схем с процеду- рами: а) 8, 1з. (старт (х), Р (у, о, ю) = (старт, 1: з:= х, 1: если р (у) те 2 иначе 4, 2: и:=а, 2: у:=5(у). 3: х:= Р (х, х, и), 3: о:= б (о, ю) на 1, 4: и:= Ь, 4: если д(ю) те 5 вязче 6, 5: з:= Р (з, х, и) 5: у:= о, 6: стоп (з)) 6: стоп (у)) С(г, г) = (старт, 1: если д (г) то 2 иначе 3, 2: с.=У(г), 3: стоп (г)); б) Я 4: (старт (х), Р (х) = (старт, 1: у:= Р (х), 1: еслн р (х) то 2 иначе 3, 2: степ (у)) 2: о:= х на 8, 3: з:=у(х), 4: з:=Р(з), 5: и:=й(х), 6:..:.= Р (и), 7: о:= 7'(х, и), 8: стоп (о)). Выполнение интерпретированных схем с процедурами подоб- но выполнению стандартных схем, но имеет следующие особенно- сти.

1. Первой начинает выполняться интерпретированная главная схема (главная программа), все операторы которой, отличные от вызова процедуры, выполняются так же, как и операторы интер- претированной стандартной схемы. 2. Выполнение оператора вызова й: х:= Роо (у„..., у„) (как в главной схеме, так и в телах процедур) при текущем состоя- нии памяти Ю включает следующие действия: а) осуществляется переход к выполнвнвю (интерпретирован- ной) схемы процедуры (или процедуры) с заголовком Ро*> (хг,...

..., х„), причем в качестве качельного значения каждой перемен- ной х„1 ~( $ с л, берется значение )У(у,), а начальное значение любой другой переменной х в теле процедуры равно Г (з), где У— интерпретация; б) посла завершения выполнения процедуры результат (зна- чение переменной, упомянутой в заключительном операторе тела процедуры) присваивается переменной х в операторе вызова рл х:= Р (ут,..., у„), а значение любой другой переменной у из па- мяти главкой схемы остается равным значению )у (у); в) осуществляется переход к выполнению оператора с меткой й + 1 или оператора с меткой, указанной в переходе оператора вызова.

3. Выполнение тела процедуры осуществляется точно так же, '"как выполнение главной схемы. Обозначим класс схем с процедурами т". (Р). Т е о р е и а 8 6. Класс рекуреиеных схем тракелируем в класс сдтм с проце0урами, т. е. т"(В) «( У (Р). Д о к а з а т е л ь с т в о. Алгоритм трансляции рекурсивных схем в схемы с процедурами: 1) строится главная схема вида (старт (уд,..., у„), 1» у:= т (у„..., у„), 2: степ (у)), где у — новая переменная, не входящая в память рекурсивной схе- мы, а т (уд,..., у„) — главный терм рекурсивной схемы; 2) памяти всех рекурсивных уравнений переименовываются так, чтобы они взаимно не пересекалвсь я не пересекались с па- мятью главной схемы; 3) каждое рекурсивное уравнение Р» (хд,..., х„) = если р (х»„..., х»,) то т», иначе т,о заменяется схемой процедуры Р» (х„..., х„) = (старт, 1: если р (х»„..., х»,) то 2 иначе >», 2: К (о, т»д) на т, ул о (" т»о) т: стоп (и)) ° где Ю (о, т»д) и Я (д>, т»,) — фрагменты схем, называемые операки>р- пыми раскрытиями простых термез т»д и т»о.

Операторное раскры- тие Я (о, т) простого герма ч определяется следующим образом: а) если ъ = х, то Я (и, т) = »> д= х; б) если т = $<"> (тд,..., т„), где 5»"> — базовый или опреде- ляемый функциональный символ, то Я (о, т) представляет собой последовательность а„а„..., а„, и >= $»"> (з ..., з„), г де хд,..., з — новые переменные, а з»:=х, если т» — переменная х, а»= Я(з», т») в противном случае. Например, 8 (о, ) (Р (у (х)), Р (тд (х)))) — зто последовательность операторов и: = у (х), зд:= Р (и), ю: = й (х), зо: = Р (а>), и : = ~ (хд, «,). На этом мы завершаем докааательство, считая, что содержательддого анализа алгоритма трансляции и правил выполнения свободао интерпретированных рекурсивных схем и схем с процедурамв достаточно для того, чтобы убедиться в эквивалентности исходной и построенной схем.

Факт, что исходная в построенная схемы имеют разные памяти (в частности, в схеме с процедурзмв болыпе переменных за счет раскрытня термов), не вносит осложнений, так как все добавляемые переменные используются в качестве времен- У В. Е. Котов, В. К. Саеельфельд 493 ных «рабочих ячеек», они не входят в заключительный оператор главной схемы и их начальные значения, задаваемые интерпретациями, ке вляяют на результаты.

( ) Т е о р е м а 8.7. Класс схем с процедурами транслируел» в класс рекурсивных схем, т. е. У (Р) в У (В). Дока з а тел ь с та о. Нюне описан несложный алгоритм трансляции. Прежде всего, с помощью описанного в теореме 8 1 алгоритма главная схема Я и тела схем процедур Р„ ..., Р„ независимо транслируются в рекурсивные схемы Вз и В»р» (1 = = 1, ...,и). При этом не делается никаких различий между базовыми и определяемыми функциональнымн символами исходной схемы. Пусть т» — главный терм схемы Вз, а т~ (1 = 1,..., и)— главный терм схемы Вр, К системе рекурсивных уравнений, получающейся объединением уравнений схем Вз и Вр«(1 ~ 1 «( и), добавим каждое из уравнений Р» (х1» . » хп) = ти где Г» (хм..., х„) — заголовок схемы процедуры Ри для $ = = 1,..., и.

В качестве главного герма получающейся при этом рекурсивной схемы возьмем терм с,, [ ] Т е о р е м а 8.8. Класс рекурсивных схем и класс схем с процедурами раеномощны. Д о к а з а т е л ь с т в о. Следствие теорем 8.6 и 8.7. ( ) Т е о р е м а 8.9. Класс схем с процедурами строго мощнее класса стандартных схем, т. е. У с У (Р), где У вЂ” класс стандартных схем, Д о к а з а тел ь с т в о. Следствие теорем 8.3 и 8.8. П 4.2. Частичная трансляция схем с процедурами.

Хотя не существует алгоритма трансляции схем с процедурами в стандартные схемы, рассмотрим преобразование схем с процедурами, которое можно назвать частичной транслзцией. Преобразование представляет собой итеративный процесс, который всегда завершается построением схемы, причем зто или стандартная схема, или схема с процедурамя (часто с меньшим числом процедур, чем исходная). Основу рассматриваемого преобразования составляет операция подстановки тел схем процедур вместо операторов вызовов. Этз операция — аналог известной в программировании открытой подстановки процедур.

Подстановка вместо инструкции вызова й: г:=Р,(уи...,у„) иа 1 тела схемы процедуры, определяющей функциональный символ Ри производится следующвм образом. Схема процедуры копируется, каждой переменной памяти этой схемы сопоставляется взаимно однозначко новая переменная, а каждой мотке в теле схемы — новая метка, ие встречающаяся в главной схеме и в телах !94 всех схем процедур. Все вхождения старых переменных и меток в инструкции копии тела заменяются соответствующими новызди переменными и метками. Заголовок копии и оператор старт в копни тела элнмиивруются, а метка 1 заменяется новой меткой ш. Заключителыдый оператор стоп (и) заменяется на з: = о нв 1; инструкция дд: х:= Р~ (уд,..., у„) — последовательностью инструкций яд х,д=уд,...,х„д=у ва ш, где хд,..., х„— новые переменные копни схемы процедуры, со- ответствующие старым переменным из заголовка этой схемы про- цедуры.

На этом подстановка завершается. Например, подстановка вместо оператора вызова й у:= г' (у), входящего в главную схему схемы Я д, тела схемы процедуры следующим образом меняет главную схему: (старт (х), 1:х:=х яа9, 2: стоп (у), 9: если р (хд) то 10 вначе 11, 10; од:= хд иа 16, 11: *д ..— — у(хд), 12: з,:= Р(зд), 13д ид:= дд(хд), 14: ид .

—— Р (ид), 15: ид.— — 1(~ь ид)» 16д у:= ддд ва 2). Начальный шаг частичной трансляции — сопоставление каж- дой инструкцви вызова в главной схеме и в схемах процедур вспо- могателъвого списка определяемых функционалъных символов. Для инструкций вызова в главной схеме этот список пустой, а для инструкций вызова в схемах процедур он состоит из одного сим- вола, определяемого этой схемой процедуры. Следующий шаг повторяется итеративно сначала для главной схемы, затем для каждой схемы процедуры, затем снова для глав- ной схемы и так далее, пока можно осуществлять хотя бы одну подстановку.

На этом шаге вместо каждой инструкции вызова Й: г д = Р; (у»..., у„), во всяомогателъном списке которой (уъ,..., гдд) нет символа Гд, подставляется тело схемы процедуры, определяющей функ- циональный символ Гд. В списки всех новых внструкций вызова, вошедших вместе с подставленным фрагментом, добавляются эле- менты списка (Ръ,..., дгб) и символ Рд. Если в главной схеме после некоторого очередного шага нет инструкции вызова или нельзя осуществить ни одной вз подста- новок из-за невыполнения условия применения подстановки, час- тичная трансляция заканчввается, а те схемы процедур, которые определяют функциональные символы, не встречающиеся боль- ше в главной схеме в ни в одной вз схем процедур, элиминируют- 7Ф 1йъ ся.

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

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

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

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