Скачиваний:
101
Добавлен:
27.04.2015
Размер:
885.76 Кб
Скачать

5.В.3.6. Функциональное программирование

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

На практике отличие математической функции от понятия «функции» в императивном программировании заключается в том, что императивные функции взаимодействуют и изменяют уже определённые данные. Таким образом, в императивном программировании, при вызове одной и той же функции с одинаковыми параметрами можно получить разные данные на выходе, из-за влияния на функцию внешних факторов. А в функциональном языке при вызове функции с одними и теми же аргументами мы всегда получим одинаковый результат в обоих случаях, входные данные не могут измениться, выходные данные зависят только от них. Особенностью функциональных языков является то, что цикл обычно реализуется в виде рекурсии. Строго говоря, в функциональной парадигме программирования нет такого понятия как цикл. Рекурсивные функции вызывают сами себя, позволяя операции выполняться снова и снова.

Наиболее известными языками функционального программированияявляютсяHaskell– чистый функциональный,LISPиF#– функциональный язык для платформы.NET.

Такой широко распространенный декларативный язык как SQLсодержит некоторые элементы функционального программирования. В нем остерегаются использовать переменные. Языки работы с электронными таблицами также можно рассматривать как функциональные. Многие нефункциональные языки, такие какC,C++иC#могут вести себя как функциональные при использовании указателей на функцию.

5.B.3.7. Логическое программирование

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

Самым известным языком логического программирования является Prolog.

Первым языком логического программирования был язык Planner, в котором была заложена возможность автоматического вывода результата из данных и заданных правил перебора вариантов (совокупность которых называлась планом).Plannerиспользовался для того, чтобы понизить требования к вычислительным ресурсам и обеспечить возможность вывода фактов, без активного использованиястека. Затем был разработан языкProlog, который не требовал плана перебора вариантов и был, в этом смысле, упрощением языкаPlanner.

5.B.3.8. Декларативное программирование

Декларативное программирование– термин с двумя различными значениями.

Согласно первому определению, программа «декларативна», если она описывает каково́нечто, а некак его создать. Например, веб-страницы наHTMLдекларативны, так как они описывают,чтодолжна содержать страница, а некак отображатьстраницу на экране. Этот подход отличается от языковимперативного программирования, требующих от программиста указывать алгоритм для исполнения.

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

Программы на языках декларативного программирования легко поддаются методикам метапрограммирования – когда программа может генерироваться по её описанию. Например, XSLT-программа может быть сгенерирована из файлаXML.

Таким образом, декларативное программирование подразумевает использование данных, а не написание кода для того, чтобы заставить приложение или компонент выполнить что-либо. Написание исходного кода иногда называют императивным программированием. Очевидно, со временем декларативное программирование получит еще большее распространение. Примеры подобных технологий уже сейчас можно увидеть в технологиях Microsoft ASP.NET и Microsoft Windows Communication Foundation. Даже в Microsoft Windows Presentation Foundation программисты могут разрабатывать пользовательский интерфейс, объявляя (декларируя) его разметку и поведение, используя язык разметки.

Соседние файлы в папке Пособие-Раздела-05-2008