Декларативное программирование
Непроцедурное (декларативное) программирование появилось в начале 70-х годов 20 века, но стремительное его развитие началось в 80-е годы, когда был разработан японский проект создания ЭВМ пятого поколения, целью которого явилась подготовка почвы для создания интеллектуальных машин.
При использовании декларативного языка программист указывает исходные информационные структуры, взаимосвязи между ними и то, какими свойствами должен обладать результат. При этом процедуру его получения («алгоритм») программист не строит (по крайней мере, в идеале). Особое внимание в декларативном программировании уделяется тому, что нужно сделать, а не тому, как это нужно сделать. В этих языках отсутствует понятие «оператор» («команда»).
Декларативное программирование можно подразделить на два семейства – функциональное (Лисп) и логическое (типичный представитель – Пролог).
Функциональное программирование
Функциональное программирование не использует концепцию памяти как хранилища значений переменных. Операторы присваивания отсутствуют, вследствие чего переменные обозначают не области памяти, а объекты программы. В принципе, можно составлять программы и вообще без переменных. Кроме того, нет существенных различий между константами и функциями, то есть между программами и данными. В результате этого функция может быть значением вызова другой функции и может быть элементом структурированного объекта. При этом функции часто либо прямо, либо опосредованно вызывают сами себя (рекурсия). Число аргументов при вызове функции не обязательно должно совпадать с числом параметров, указанных при ее описании.
Каждая функция возвращает некоторое значение в вызвавшую его функцию, вычисление которой после этого продолжается; этот процесс повторяется до тех пор, пока начавшая процесс вычислений функция не вернет конечный результат пользователю.
Отсутствие оператора присваивания делает переменные, используемые в функциональных языках программирования, очень похожими на переменные в математике - получив однажды свои значения, они больше никогда их не меняют. Отсутствие побочных эффектов в процессе вычисления функций приводит к тому, что порядок выполнения отдельных фрагментов программы не существенен - итоговое значение в любом случае будет одинаковым.
Для успешного овладения данным стилем программирования, необходимо весьма глубокое понимание многих разделов математики.
Дата добавления: 2021-03-18; просмотров: 454;