Декларативное программирование

Поделись знанием:
Перейти к: навигация, поиск
Парадигмы программирования
 • Императивная
(контрастирует с декларативной)
Процедурная
Структурная
Аспектно-ориентированная
Объектно-ориентированная
Агентно-ориентированная
Компонентно-ориентированная
Прототипно-ориентированная
Обобщённое программирование

 • Декларативная
(контрастирует с императивной)

Чистота языка
Чистота функции
Функциональная
В терминах Рефал-машины
Аппликативная
Комбинаторная
Бесточечная
(чистая конкатенативная)
Логическая
Ограничениями

 • Конкатенативная
 • Векторная[en]
 • Метапрограммирование

Языково-ориентированная
Предметно-ориентированная
Пользователями[en]
Автоматизация процесса программирования
Рефлексивность
Гомоиконность[en]

 • Связанные темы

Программирование в крупном и мелком масштабе[en]
Модульность
Полиморфизм
Продолжения и CPS
Параллелизм и конкурентность

 • Методы и алгоритмы

Автоматное
Динамическое
Потоков данных
Событийно-ориентированное
Реактивное
Сервис-ориентированное

Декларати́вное программи́рование — это парадигма программирования, в которой задаётся спецификация решения задачи, то есть описывается, что представляет собой проблема и ожидаемый результат. Противоположностью декларативного является императивное программирование, описывающее на том или ином уровне детализации, как решить задачу и представить результат. В общем и целом, декларативное программирование идёт от человека к машине, тогда как императивное — от машины к человеку. Как следствие, декларативные программы не используют понятия состояния, то есть не содержат переменных и операторов присваивания (см. также ссылочная прозрачность).

Наиболее близким к «чисто декларативному» программированию является написание исполнимых спецификаций (см. соответствие Карри — Ховарда). В этом случае программа представляет собой формальную теорию, а её выполнение является одновременно автоматическим доказательством этой теории, и характерные для императивного программирования составляющие процесса разработки (проектирование, рефакторинг, отладка и др.) в этом случае исключаются: программа проектирует и доказывает сама себя.

К подвидам декларативного программирования также зачастую относят функциональное и логическое программирование — несмотря на то, что программы на таких языках нередко содержат алгоритмические составляющие, архитектура в императивном понимании (как нечто отдельное от кодирования) в них также отсутствует: схема программы является непосредственно частью исполнимого кода[1].

На повышение уровня декларативности нацелено языково-ориентированное программирование.

«Чисто декларативные» компьютерные языки зачастую не полны по Тьюрингу — примерами служат SQL и HTML — так как теоретически не всегда возможно порождение исполнимого кода по декларативному описанию. Это иногда приводит к спорам о корректности термина «декларативное программирование» (менее спорным является «декларативное описание решения» или, что то же самое, «декларативное описание задачи»).

Напишите отзыв о статье "Декларативное программирование"



Примечания

  1. [fprog.ru/2010/issue6/interview-simon-peyton-jones/ Интервью с Саймоном Пейтоном Джонсом]

Литература

  • Зюзысов В. М. Математическое введение в декларативное программирование: учебное пособие. — Томск: ТГУ, 2003. — 83 с.

Ссылки

  • Дехтяренко И. А. [www.softcraft.ru/paradigm/dp/index.shtml Декларативное программирование]. softcraft.ru (2003).


Отрывок, характеризующий Декларативное программирование

Доктор настаивал на том, что надо везти князя дальше; предводитель прислал чиновника к княжне Марье, уговаривая ее уезжать как можно скорее. Исправник, приехав в Богучарово, настаивал на том же, говоря, что в сорока верстах французы, что по деревням ходят французские прокламации и что ежели княжна не уедет с отцом до пятнадцатого, то он ни за что не отвечает.
Княжна пятнадцатого решилась ехать. Заботы приготовлений, отдача приказаний, за которыми все обращались к ней, целый день занимали ее. Ночь с четырнадцатого на пятнадцатое она провела, как обыкновенно, не раздеваясь, в соседней от той комнаты, в которой лежал князь. Несколько раз, просыпаясь, она слышала его кряхтенье, бормотанье, скрип кровати и шаги Тихона и доктора, ворочавших его. Несколько раз она прислушивалась у двери, и ей казалось, что он нынче бормотал громче обыкновенного и чаще ворочался. Она не могла спать и несколько раз подходила к двери, прислушиваясь, желая войти и не решаясь этого сделать. Хотя он и не говорил, но княжна Марья видела, знала, как неприятно было ему всякое выражение страха за него. Она замечала, как недовольно он отвертывался от ее взгляда, иногда невольно и упорно на него устремленного. Она знала, что ее приход ночью, в необычное время, раздражит его.
Но никогда ей так жалко не было, так страшно не было потерять его. Она вспоминала всю свою жизнь с ним, и в каждом слове, поступке его она находила выражение его любви к ней. Изредка между этими воспоминаниями врывались в ее воображение искушения дьявола, мысли о том, что будет после его смерти и как устроится ее новая, свободная жизнь. Но с отвращением отгоняла она эти мысли. К утру он затих, и она заснула.
Она проснулась поздно. Та искренность, которая бывает при пробуждении, показала ей ясно то, что более всего в болезни отца занимало ее. Она проснулась, прислушалась к тому, что было за дверью, и, услыхав его кряхтенье, со вздохом сказала себе, что было все то же.
– Да чему же быть? Чего же я хотела? Я хочу его смерти! – вскрикнула она с отвращением к себе самой.
Она оделась, умылась, прочла молитвы и вышла на крыльцо. К крыльцу поданы были без лошадей экипажи, в которые укладывали вещи.
Утро было теплое и серое. Княжна Марья остановилась на крыльце, не переставая ужасаться перед своей душевной мерзостью и стараясь привести в порядок свои мысли, прежде чем войти к нему.
Доктор сошел с лестницы и подошел к ней.
– Ему получше нынче, – сказал доктор. – Я вас искал. Можно кое что понять из того, что он говорит, голова посвежее. Пойдемте. Он зовет вас…
Сердце княжны Марьи так сильно забилось при этом известии, что она, побледнев, прислонилась к двери, чтобы не упасть. Увидать его, говорить с ним, подпасть под его взгляд теперь, когда вся душа княжны Марьи была переполнена этих страшных преступных искушений, – было мучительно радостно и ужасно.