Пример: Глобальная сеть INTERNET
Я ищу:
На главную  |  Добавить в избранное  

Главная/

Программирование, базы данных. /

Рекурсивные схемы

←предыдущая следующая→
1 2 3 4 

рекурсивных

программ, можно дать определения пустоты, тотальности н функ-

циональной эквивалентности рекурсивных схем. § 2. Проблемы трансляции

2.1. О сравнении классов схем. Программы для ЭВМ, будь

то программы, записанные на операторном языке, или программы

на рекурсивном языке, универсальны в том смысле, что любую

вычислимую функцию можно запрограммировать и найти ее

значения для заданных значений аргументов. При этом, как уже

указывалось, не требуется богатого набора программных прими-

тивов и базовых операций: достаточно тех средств, которые мо-

делируются стандартными схемами, плюс одна интерпретирован-

ная операция и один предикат. Это значит, что различные классы

программ не имеет смысла сравнивать по мощности, понимаемой

как способность реализовать различные алгоритмы,— все они

оказываются универсальными. В то же время программисты знают,

что одни программные примитивы являются «более выразитель-

ными», чем другие, что запись алгоритмов с привлечением рекур-

сии короче, чем итерационное представление, но вычисления по

такой программе могут истребовать больше времени, и т. д. При

переходе к схемам программ возникает возможность поставить

и исследовать проблему выражения одних наборов примитивов

через другие в более чистом виде. Задачи такого типа образуют

сравнительную схематологию, основу которой составляют теоре-

мы о возможности или невозможности преобразования схем из

одного класса в схемы другого. При этом наряду с основной за-

дачей — выяснением соотношений между различными средствами

программирования — решается и другая, внутренняя задача схе-

матологии. Действительно, если мы умеем трансформировать один

класс схем в другой, то сможем переносить результаты, получен-

ные для некоторого класса схем, на другие классы.

В этой главе рассматриваются рекурсивные схемы, но так

как в следующей главе речь пойдет о других классах схем прог-

рамм, имеет смысл ввести необходимые понятия сравнительной

схематологии для произвольных классов схем программ.

Пусть У— класс схем программ в некотором базисе B, У —

класс схем программ в базисе У’. Базис любого из рассматривае-

мых классов схем включает множества: переменных, базовых

функциональных символов, предикатных символов, другие мно-

жества, специфичные для данного класса.

Мы будем сравнивать классы схем, у которых базисы согла-

сованны в том смысле, что первые три из перечисленных множеств

одинаковы в данных базисах. Это дает возможность превращать

в программы схемы из разных классов с помощью одной и той же

интерпретации базисов. Например, полные базисы стандартных

и рекурсивных схем согласованны, т. е. определение функцио-

дальней эквивалентности может быть обобщено на схемы из раз-

ных классов.

Схема S1 нз класса У и схема S2, из класса У’ функционально

эквивалентны., если для любой интерпретации I согласованных

базисов классов У u У’ программы (S1, I), (S2, I) или   обе

зацикливаются, или обе останавливаются с одним и тем же резуль-

татом.

Говорят, что класс схем У мощнее класса схем У’, или класс

У’ транслируем в класс У (обозначение: УУ’), если для любой

схемы из У’ существует эквивалентная ей схема в классе У.

Класс У строго мощнее класса У’ (У > У’), если У мощнее

У’ и в У существует схема, для которой нет эквивалентной схемы

в У’ (класс У’ не транслируем в класс У). Классы У и У’

равномощны, если У мощнее У’ и У’ мощнее У. Класс схем У

эффективно транслируем в класс схем У’, если существует алго-

ритм, преобразующий любую схему из У в эквивалентную схему

из У’. Классы У и У’ эффективно равномощны, если У эффек-

тивно транслируем в У’ и У’ эффективно транслируем в У.

Ниже, когда устанавливается транслируемость одного класса

схем в другой или их равномощность, фактически демонстрируется

эффективная транслируемость или эффективная равномощность.

2.2. Трансляция стандартных схем в рекурсивные. В рекур-

сивных схемах результат поставляет ровно один терм, а в стан-

дартных схемах заключительные оператор может содержать

любой конечный набор термов и тогда результат программы —

не один элемент из области интерпретации, а набор таких эле-

ментов. Однако такое отличие не имеет принципиального значе-

ния для транслируемости схем. Можно было бы определить ре-

курсивные схемы, поставляющие в качестве результата наборы

термов, например, используя интерпретированную функцию пе-

чать (т1, . . ., тn). Мы поступим проще — ограничим класс стан-

дартных схем схемами над базисом, содержащим заключительные

операторы только следующего вида: стоп(х), хХ.

Т е о р е м а (Маккарти). Класс стандартных схем транс-

лируем в класс рекурсивных схем.

Краткий обзор и комментарии

Теоретическое изучение рекурсивного программирования бы-

ло начато Маккарти в связи с его работами над языком

Лисп  и одновременно в связи с попытками создать основы

семантической теории программирования. В дальнейшем рекур-

рентные схемы и программы играли важную роль в развитии фор-

мальных методов описания и исследования семантики программ

и языков программирования, в теории правильности программ.

Схематологические аспекты рекурсивного программированяя впер-

вые были исследованы Де Баккером и Скоттом, Стронгом,

Патерсоном и Хьюиттом.

Де Баккер и Скотт предложили унарные рекурсивные схемы

как обобщение схем Янова и инициировали изучение главных

проблем для рекурсивных схем. Так как класс рекурсивных схем

строго мощнее класса стандартных схем (см. теорему), Heразре-

шимость всех глагвных проблем для рекурсивных схем можно

 установить из их неразрешимости для стандартных схем.

С другой стороны, класс праволинейных унарных схем равномо-

щен классу схем Янова (см. теорему), поэтому на этот класс

наносятся все «положительные» результаты из теории схем Яно-

ва. В настоящее время между этими двумя полюсами мало

мущественных результатов.  Гарлэнд  и  Лакхэм  показали

разрешимость проблемы эквивалентности в классе линейных унар-

ныx схем, и Сабельфельд  построил полную систему эквива-

лентных преобразований для этого класса в духе системы преоб-

зования Ершова для схем Янова. Наиболее полное исследова-

ние класса унарных схем выполнено Ашкрофтом, Манна и Пнуе-

ли, которые установили разрешимость проблем пустоты,

тотальности и свободы в этом классе, а также разрешимость про-

блемы эквивалентности в классе свободных унарных схем.

В классической работе Гарлэнд и Лакхэм высказали ги-

потезу о разрешимости функциональной эквивалентности в клас-

се унарных линейных рекурсивных схем с засылками констант,

т.е. схем, в которых разрешается использовать нульместные ба-

зовые функциональные символы.

←предыдущая следующая→
1 2 3 4 


Copyright © 2005—2007 «RefStore.Ru»