- •§ 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.