Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Теория_алгоритмов.doc
Скачиваний:
14
Добавлен:
18.03.2016
Размер:
409.09 Кб
Скачать

9

§ 2.3. Лямбда-исчисление – исчисление (автор Алонсо Черч)

исчисление – это безтиповая теория, которая рассматривает функции, как правила, а не как графики. В традиционном подходе: два представлениявыражают одну и ту же функцию, а с точки зренияисчисления они выражают разные функции, так как правила вычисления различны. исчисление – это прикладное исчисление предикатов 1-го порядка (ПИП 1-го порядка).

ОСОБЕННОСТИ:

  1. Безтиповость: объекты могут являться функциями и аргументами, т.е. функции могут быть заданы программами (функции или процедуры Pascal), которые могут передаваться через формальные параметры другим программам.

  2. исчисление представляет класс частичных функций – «определимые функции», которые характеризуют неформальное понятие «эффективной вычислимости», тем самым связано с понятием «алгоритма вычисления».

  3. исчисление являетсятеоретической моделью современного функционального программирования (например, язык ЛИСП, который используетисчисление в качестве промежуточного кода после 1-го этапа трансляции).

2.3.1. выражения и их вычисления.

Пример: . Висчислении различают (устраняют различное понимание): символьную записьи ее вызов (вычисление).

исчисление изучает функции и их аппликативное поведение (поведение относительно применения к аргументу). Выражениеможно считать как функцию от(это записывается как) и как функцию от(это записывается как). Вызовы могут быть следующими:

а) и;

б) ;

в) .

2.3.2. Определение термов ивыражений

ОПРЕДЕЛЕНИЕ:

  1. Каждая переменная или константа есть терм.

  2. По любой переменной и любомутерму M строится новыйтерм:– функция от, которую называютабстракцией.

Замечание 1:Аналогичен в Pascal селектор записи «».

Замечание 2:Константы: целые числа, булевы константы, арифметические операции (функторы), булевы функции и т.п.

  1. По любым термам M и N строится новыйтерм MN, обозначающий применение (аппликацию) оператора M к аргументу N, то есть подстановкапозволяет получать выражения (предикаты).

Замечание 3:Это определениетермов (выражений) является правилом конструирования формул «по индукции».

Замечание 4: Правила вывода определяют алгоритм вычисления выражений

СВОРАЧИВАНИЕ,СВОРАЧИВАНИЕ И РЕДУКЦИЯ

Определение 1:Константа, обозначающая функтор, применяемый к операндам, определяет подтерм, называемыйредексом, а процесс применения называетсясворачиванием, в результате которого получается новое выражение.

ПРИМЕР: То есть, «» –редекс,сворачивание:

Определение 2: Терм вида называетсяредексом.

Определение 3: Еслиредекс содержится в термеи одно из его вхождений заменяется термом (подстановкой), то этот процесссворачивания (свертывания) обозначаетсяи означает, что термсворачивается к выражению.

Определение 4:Конечная последовательностьилисвертываний называется «редукцией». Один шагилисвертывания обозначается стрелкой без индекса, просто «».

Замечание 5: Использование констант иправил излишне, так как константы можно реализовать только атомарными термами в виде переменных (т.е.,«чистое исчисление» -исчисление без констант иправил).

Примеры редукций (используемые редексы подчеркнуты):

1.

2.