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

Материал из Википедии — свободной энциклопедии
Перейти к: навигация, поиск

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

  1. Согласно первому определению, программа «декларативна», если она описывает каково́ нечто, а не как его создать. Например, веб-страницы на HTML декларативны, так как они описывают что должна содержать страница, а не как отображать страницу на экране. Этот подход отличается от языков императивного программирования, требующих от программиста указывать алгоритм для исполнения. В типично декларативном языке программирования XSLT, последовательность исполнения зависит, как правило, от входящего XML (в случае с использованием push-модели — «проталкивание»), в случае использования pull-модели (вытягивания), XSLT вырождается в частный случай функционального программирования и легко может быть заменена на аналогичный код в XQuery.
  2. Согласно второму определению, программа «декларативна», если она написана на исключительно функциональном, логическом или языке программирования с ограничениями. Выражение «декларативный язык» иногда употребляется для описания всех таких языков программирования как группы, чтобы подчеркнуть их отличие от императивных языков.

Программы на языках декларативного программирования легко поддаются методикам метапрограммирования — когда программа может генерироваться по её описанию. Например XSLT-программа может быть сгенерирована из файла XML (часто с помощью другой XSLT) — см. Schematron.

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

Примечания[править | править вики-текст]

  1. Джеффри Рихтер. CLR via C#. Программирование на платформе Microsoft.NET Framework 2.0 на языке С#. Мастер-класс = CLR via C#. — 2-е изд. — [«Русская Редакция», «Питер»], 2007. — С. 377. — ISBN 5-7502-0285-2, 978-5-91180-303-2.