рекурсивных
программ, можно дать определения пустоты, тотальности н функ-
2.1. О сравнении классов схем. Программы для ЭВМ, будь
то программы, записанные на операторном языке, или программы
на рекурсивном языке, универсальны в том смысле, что любую
вычислимую функцию можно запрограммировать и найти ее
значения для заданных значений аргументов. При этом, как уже
указывалось, не требуется богатого набора программных прими-
тивов и базовых операций: достаточно тех средств, которые мо-
делируются стандартными схемами, плюс одна интерпретирован-
ная операция и один предикат. Это значит, что различные классы
программ не имеет смысла сравнивать по мощности, понимаемой
как способность реализовать различные алгоритмы,— все они
оказываются универсальными. В то же время программисты знают,
что одни программные примитивы являются «более выразитель-
ными», чем другие, что запись алгоритмов с привлечением рекур-
сии короче, чем итерационное представление, но вычисления по
такой программе могут истребовать больше времени, и т. д. При
переходе к схемам программ возникает возможность поставить
и исследовать проблему выражения одних наборов примитивов
через другие в более чистом виде. Задачи такого типа образуют
сравнительную схематологию, основу которой составляют теоре-
мы о возможности или невозможности преобразования схем из
одного класса в схемы другого. При этом наряду с основной за-
дачей — выяснением соотношений между различными средствами
программирования — решается и другая, внутренняя задача схе-
матологии. Действительно, если мы умеем трансформировать один
класс схем в другой, то сможем переносить результаты, получен-
ные для некоторого класса схем, на другие классы.
В этой главе рассматриваются рекурсивные схемы, но так
как в следующей главе речь пойдет о других классах схем прог-
рамм, имеет смысл ввести необходимые понятия сравнительной
схематологии для произвольных классов схем программ.
Пусть У— класс схем программ в некотором базисе B, У —
класс схем программ в базисе У’. Базис любого из рассматривае-
мых классов схем включает множества: переменных, базовых
функциональных символов, предикатных символов, другие мно-
жества, специфичные для данного класса.
Мы будем сравнивать классы схем, у которых базисы согла-
сованны в том смысле, что первые три из перечисленных множеств
одинаковы в данных базисах. Это дает возможность превращать
в программы схемы из разных классов с помощью одной и той же
интерпретации базисов. Например, полные базисы стандартных
и рекурсивных схем согласованны, т. е. определение функцио-
дальней эквивалентности может быть обобщено на схемы из раз-
ных классов.
Схема S1 нз класса У и схема S2, из класса У’ функционально
эквивалентны., если для любой интерпретации I согласованных
базисов классов У u У’ программы (S1, I), (S2, I) или обе
зацикливаются, или обе останавливаются с одним и тем же резуль-
татом.
Говорят, что класс схем У мощнее класса схем У’, или класс
У’ транслируем в класс У (обозначение: УУ’), если для любой
схемы из У’ существует эквивалентная ей схема в классе У.
Класс У строго мощнее класса У’ (У > У’), если У мощнее
У’ и в У существует схема, для которой нет эквивалентной схемы
в У’ (класс У’ не транслируем в класс У). Классы У и У’
равномощны, если У мощнее У’ и У’ мощнее У. Класс схем У
эффективно транслируем в класс схем У’, если существует алго-
ритм, преобразующий любую схему из У в эквивалентную схему
из У’. Классы У и У’ эффективно равномощны, если У эффек-
тивно транслируем в У’ и У’ эффективно транслируем в У.
Ниже, когда устанавливается транслируемость одного класса
схем в другой или их равномощность, фактически демонстрируется
эффективная транслируемость или эффективная равномощность.
2.2. Трансляция стандартных схем в рекурсивные. В рекур-
сивных схемах результат поставляет ровно один терм, а в стан-
дартных схемах заключительные оператор может содержать
любой конечный набор термов и тогда результат программы —
не один элемент из области интерпретации, а набор таких эле-
ментов. Однако такое отличие не имеет принципиального значе-
ния для транслируемости схем. Можно было бы определить ре-
курсивные схемы, поставляющие в качестве результата наборы
термов, например, используя интерпретированную функцию пе-
чать (т1, . . ., тn). Мы поступим проще — ограничим класс стан-
дартных схем схемами над базисом, содержащим заключительные
операторы только следующего вида: стоп(х), хХ.
Т е о р е м а (Маккарти). Класс стандартных схем транс-
лируем в класс рекурсивных схем.
Теоретическое изучение рекурсивного программирования бы-
ло начато Маккарти в связи с его работами над языком
Лисп и одновременно в связи с попытками создать основы
семантической теории программирования. В дальнейшем рекур-
рентные схемы и программы играли важную роль в развитии фор-
мальных методов описания и исследования семантики программ
и языков программирования, в теории правильности программ.
Схематологические аспекты рекурсивного программированяя впер-
вые были исследованы Де Баккером и Скоттом, Стронгом,
Патерсоном и Хьюиттом.
Де Баккер и Скотт предложили унарные рекурсивные схемы
как обобщение схем Янова и инициировали изучение главных
проблем для рекурсивных схем. Так как класс рекурсивных схем
строго мощнее класса стандартных схем (см. теорему), Heразре-
шимость всех глагвных проблем для рекурсивных схем можно
установить из их неразрешимости для стандартных схем.
С другой стороны, класс праволинейных унарных схем равномо-
щен классу схем Янова (см. теорему), поэтому на этот класс
наносятся все «положительные» результаты из теории схем Яно-
ва. В настоящее время между этими двумя полюсами мало
мущественных результатов. Гарлэнд и Лакхэм показали
разрешимость проблемы эквивалентности в классе линейных унар-
ныx схем, и Сабельфельд построил полную систему эквива-
лентных преобразований для этого класса в духе системы преоб-
зования Ершова для схем Янова. Наиболее полное исследова-
ние класса унарных схем выполнено Ашкрофтом, Манна и Пнуе-
ли, которые установили разрешимость проблем пустоты,
тотальности и свободы в этом классе, а также разрешимость про-
блемы эквивалентности в классе свободных унарных схем.
В классической работе Гарлэнд и Лакхэм высказали ги-
потезу о разрешимости функциональной эквивалентности в клас-
се унарных линейных рекурсивных схем с засылками констант,
т.е. схем, в которых разрешается использовать нульместные ба-
зовые функциональные символы.
|
|