
- •§ 2.3. Лямбда-исчисление – исчисление (автор Алонсо Черч)
- •2.3.2. Определение термов ивыражений
- •2.3.3. Нормальные формы выражений
- •Порядок редукций (стратегия выбора редексов)
- •§ 2.4. Машины тьюринга (автор Алан Тьюринг) – 3-й способ определения вычислимых функций
- •§ 2.5. Другие подходы к определению понятия алгоритма. Тезис черча
- •§ 2.6. Алгоритмически неразрешимые проблемы (анп)
- •§ 2.7. Сложность алгоритмов.
- •Np-трудные и np-полные задачи
§ 2.3. Лямбда-исчисление – исчисление (автор Алонсо Черч)
исчисление
– это безтиповая теория, которая
рассматривает функции, как правила, а
не как графики. В традиционном подходе:
два представления
выражают одну и ту же функцию, а с точки
зрения
исчисления
они выражают разные функции, так как
правила вычисления различны.
исчисление
– это прикладное исчисление предикатов
1-го порядка (ПИП 1-го порядка).
ОСОБЕННОСТИ:
Безтиповость: объекты могут являться функциями и аргументами, т.е. функции могут быть заданы программами (функции или процедуры Pascal), которые могут передаваться через формальные параметры другим программам.
исчисление представляет класс частичных функций – «
определимые функции», которые характеризуют неформальное понятие «эффективной вычислимости», тем самым связано с понятием «алгоритма вычисления».
исчисление являетсятеоретической моделью современного функционального программирования (например, язык ЛИСП, который использует
исчисление в качестве промежуточного кода после 1-го этапа трансляции).
2.3.1.
выражения
и их вычисления.
Пример:
.
В
исчислении
различают (устраняют различное понимание):
символьную запись
и ее вызов (вычисление)
.
исчисление
изучает функции и их аппликативное
поведение (поведение относительно
применения к аргументу). Выражение
можно считать как функцию от
(это записывается как
)
и как функцию от
(это записывается как
).
Вызовы могут быть следующими:
а)
и
;
б)
;
в)
.
2.3.2. Определение термов ивыражений
ОПРЕДЕЛЕНИЕ:
Каждая переменная или константа есть терм.
По любой переменной
и любому
терму M строится новый
терм:
– функция от
, которую называют
абстракцией.
Замечание 1:Аналогичен в Pascal селектор
записи «».
Замечание 2:Константы: целые числа, булевы константы, арифметические операции (функторы), булевы функции и т.п.
По любым
термам M и N строится новый
терм MN, обозначающий применение (аппликацию) оператора M к аргументу N, то есть подстановка
позволяет получать
выражения (предикаты).
Замечание 3:Это определениетермов
(выражений) является правилом
конструирования формул «по индукции».
Замечание 4: Правила вывода определяют
алгоритм вычисления
выражений
СВОРАЧИВАНИЕ,
СВОРАЧИВАНИЕ
И РЕДУКЦИЯ
Определение 1:Константа, обозначающая
функтор, применяемый к операндам,
определяет подтерм, называемыйредексом,
а процесс применения называется
сворачиванием,
в результате которого получается новое
выражение.
ПРИМЕР:
То есть, «
»
–
редекс,
сворачивание:
Определение 2: Терм вида называется
редексом.
Определение 3: Еслиредекс
содержится в терме
и одно из его вхождений заменяется
термом (подстановкой)
,
то этот процесс
сворачивания
(свертывания) обозначается
и означает, что терм
сворачивается
к
выражению
.
Определение 4:Конечная последовательностьили
свертываний
называется «редукцией». Один шаг
или
свертывания
обозначается стрелкой без индекса,
просто «
».
Замечание 5: Использование констант
иправил
излишне, так как константы можно
реализовать только атомарными термами
в виде переменных (т.е.,«чистое
исчисление»
-
исчисление
без констант и
правил).
Примеры редукций (используемые редексы подчеркнуты):
1.
2.