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

Методология функционального программирования

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

Методы и концепции:

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

2. Метод рекурсивного поведения – заключается в самоповторяющемся поведении, возвращающемся к самому себе.

3. Метод настраиваемости - заключается в том, что можно легко порождать новые программные объекты по образцу, как значения соответствующих выражений (применение порождающих функций к параметрам образца). Этому способствует то, что не только программа, но и любой программный объект (в идеале) является выражением.

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

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

Популярные языки функционального программирования:

1. Lisp (1958)

2. РЕФАЛ (1968)

3. Scheme (1975)

4. FP (1977), ML (1978)

5. Miranda (1985)

6. Standart ML (1985)

7. Haskell (1990, 1998)

Класс задач. Функциональное программирование обычно применяется для решения тех задач, которые трудно сформулировать в терминах последовательных операций. В эту категорию попадают практически все задачи, связанные с искусственным интеллектом. Это такие задачи, как обработка естественного языка, экспертные консультирующие системы, проблемы зрительного восприятия, и многие другие.

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

Методы и концепции:

1. Применение единого механизма логического доказательства ко всей программе.

2. Унификация структур данных при декомпозиции.

Синтаксис и семантика задаются при помощи фактов (аксиом) и правил вывода. Правила вывода имеют вид так называемых «дизъюнктов Хорна» – утверждений вида:

А <= B1& … &Bn

Аксиомы в программах обычно представляются, как правила с пустой «посылкой»:

А

Известные языки логического программирования:

1. Prolog (1971)

2. LOGLISP (1982)

3. Mercury (1993)

Класс задач, решаемых с помощью методологии логического программирования, совпадает с классом задач функционального программирования.



Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: