Декларативное программирование
Эта статья или раздел нуждается в переработке. |
В статье не хватает ссылок на источники (см. рекомендации по поиску). |
Декларати́вное программи́рование — парадигма программирования, в которой задаётся спецификация решения задачи, то есть описывается ожидаемый результат, а не способ его получения. Противоположностью декларативного является императивное программирование, при котором на том или ином уровне детализации требуется описание последовательности шагов для решения задачи. В качестве примеров декларативных языков обычно приводят HTML и SQL.
Декларативные программы не используют понятия состояния, в частности, не содержат переменных и операторов присваивания, обеспечивается ссылочная прозрачность. Наиболее близким к «чисто декларативному» программированию является написание исполнимых спецификаций. В этом случае программа представляет собой формальную теорию, а её выполнение является одновременно автоматическим доказательством этой теории[прояснить] (соответствие Карри — Ховарда), и характерные для императивного программирования составляющие процесса разработки (проектирование, рефакторинг, отладка и другие) в этом случае исключаются: программа проектирует и доказывает сама себя[прояснить].
К подвидам декларативного программирования также зачастую относят функциональное и логическое программирование. Несмотря на то, что программы на таких языках нередко содержат алгоритмические составляющие, архитектура в императивном понимании (как нечто отдельное от кодирования) в них также отсутствует: схема программы является непосредственно частью исполняемого кода[1].
На повышение уровня декларативности нацелено языково-ориентированное программирование.
«Чисто декларативные» компьютерные языки зачастую неполны по Тьюрингу — так как теоретически не всегда возможно порождение исполняемого кода по декларативному описанию. Это иногда приводит к спорам о корректности термина «декларативное программирование» (менее спорным является «декларативное описание решения» или, что то же самое, «декларативное описание задачи»).
ПримечанияПравить
- ↑ Интервью с Саймоном Пейтоном Джонсом (неопр.). Дата обращения: 9 января 2016. Архивировано 12 января 2016 года.
ЛитератураПравить
- Зюзьков В. М. Математическое введение в декларативное программирование: учебное пособие. — Томск: ТГУ, 2003. — 83 с.
СсылкиПравить
- Дехтяренко И. А. Декларативное программирование (неопр.). softcraft.ru (2003).
Это статья-заготовка о программировании. Помогите Википедии, дополнив эту статью, как и любую другую. |