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

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

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

Многие языки, применяющие этот стиль, пытаются минимизировать или устранить побочные эффекты, описывая, что программа должна выполнять в терминах, а не описывать, как это сделать, как последовательность примитивов языка программирования (как оставлено на усмотрение реализации языка). Это контрастирует с императивным программированием, которое реализует алгоритмы явными шагами.

Декларативное программирование часто рассматривает программы как теории формальная логика и вычисления как выводы в этом логическом пространстве. Декларативное программирование может значительно упростить написание параллельных программ.

Определение

Декларативное программирование часто определяется как любой стиль программирования, который не является императивным. Ряд других общих определений пытается дать ему определение, просто противопоставляя его императивному программированию. Например:

  • программа высокого уровня, описывающая, что должны выполняться вычисления.
  • Любой язык программирования, у которого отсутствуют побочные эффекты (или, более конкретно, ссылочно прозрачный )
  • Язык с четким соответствием математической логике.

Эти определения существенно перекрываются.

Декларативное программирование — это не императивный стиль программирования, в котором программы описывают желаемые результаты без явного перечисления команд или шаги, которые необходимо выполнить. Функциональные и языки логического программирования характеризуются декларативным стилем программирования. В языках логического программирования программы состоят из логических операторов, а программа выполняется путем поиска доказательств утверждений.

В чистом функциональном языке, таком как Haskell, все функции без побочных эффектов, а изменения состояния представлены только как функции, которые преобразуют состояние, которое явно введен в программу как первоклассный объект . Хотя чистые функциональные языки не являются императивными, они часто предоставляют возможность описать действие функции в виде серии шагов. Другие функциональные языки, такие как Lisp, OCaml и Erlang, поддерживают сочетание процедурного и функционального программирования.

Читайте также:  Компьютерная сеть языки программирования

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

Подпарадигмы

Декларативное программирование — это общий термин, который включает ряд более известных парадигм программирования.

Программирование в ограничениях

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

Доменные языки

Хорошо известные примеры декларативных предметно-ориентированных языков (DSL) включают язык ввода генератора синтаксического анализатора yacc, QML, язык спецификации сборки Make, язык управления конфигурацией Puppet, регулярные выражения и подмножество SQL (например, запросы SELECT). Преимущество DSL состоит в том, что они полезны, но не обязательно должны быть полными по Тьюрингу, что упрощает чисто декларативный характер языка.

Многие языки разметки, такие как HTML, MXML, XAML, XSLT или другой пользовательский интерфейс языки разметки часто декларативны. HTML, например, описывает только то, что должно отображаться на веб-странице — он не определяет ни поток управления для рендеринга страницы, ни возможные взаимодействия страницы с пользователем.

По состоянию на 2013 год некоторые программные системы сочетают традиционные языки разметки пользовательского интерфейса (например, HTML) с декларативной разметкой, которая определяет, что (но не как) системы внутреннего сервера должны делать для поддержки заявленного интерфейса. Такие системы, обычно использующие доменное пространство XML, могут включать абстракции синтаксиса базы данных SQL или параметризованные вызовы веб-служб с использованием передачи репрезентативного состояния (REST) ​​и SOAP.

Гибридные языки

Make-файлы, например, декларативно определяют зависимости, но также включают обязательный список действий, которые необходимо предпринять. Точно так же yacc декларативно определяет контекстно-свободную грамматику, но включает фрагменты кода с основного языка, что обычно является обязательным (например, C ).

Логическое программирование

Языки логического программирования, такие как состояние Prolog и отношения запросов. Специфика ответов на эти запросы зависит от реализации и средства доказательства теорем, но обычно принимает форму некоторого вида унификации. Как и функциональное программирование, многие языки логического программирования допускают побочные эффекты и, как следствие, не являются строго декларативными.

Моделирование

Модели или математические представления физических систем могут быть реализованы в компьютерном коде, который является декларативным. Код содержит ряд уравнений, а не императивных присваиваний, которые описывают («декларируют») поведенческие отношения. Когда модель выражается в этом формализме, компьютер может выполнять алгебраические манипуляции, чтобы наилучшим образом сформулировать алгоритм решения. Математическая причинность обычно накладывается на границы физической системы, в то время как описание поведения самой системы является декларативным или акаузальным. Декларативные языки моделирования и среды включают Analytica, Modelica и.

См. Также

Ссылки

Внешние ссылки

На Викискладе есть материалы, связанные с Декларативным программированием.
  • Франс Коенен. Характеристики декларативных языков программирования. 1999.
  • Роберт Харпер.
    • Что, если что, является декларативным языком?. 2013.
    • Существует такая вещь, как декларативный язык, и это лучший DSL в мире. 2013.
  • Олоф Торгерссон. Заметка о парадигмах декларативного программирования и будущем определяющего программирования. 1996.

Источник

Декларативный подход к программированию

Декларативный подход к программированию что такое

В этой статье мы разберём что такое декларативный подход к программированию, думаю всем будет интересно, особенно новичкам.

Что такое декларативное программирование:

Декларативное программирование основано на идее программирования приложений с использованием определений того, что должно быть сделано, а не того, как это должно быть сделано.

Противоположностью этому принципу является императивное программирование, описывающее отдельные операции с помощью алгоритмов. Проще говоря, императивные программы содержат алгоритмы, которые достигают желаемой цели, в то время как декларативные языки задают цель, а алгоритмизация предоставляется программе (интерпретатору) языка.

Декларативное программирование пытается уберечь программиста от ошибок, которые обычно возникают при создании на императивных языках.

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

Декларативные языки пытаются решить эту проблему. Переменные в них используются очень экономно, потому что значения чаще всего передаются в виде возвращаемого значения определенной функции. Декларативные языки также не включают средства для выполнения цикла, известного как do-while или for. Все решается рекурсией .

Подходы к декларативному программированию:

К декларативному программированию можно подойти двумя способами. Первый — это использование языка из групп языков программирования, которые были разработаны специально для декларативного программирования.

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

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

Второй подход — использовать императивный язык с библиотекой для поддержки декларативного программирования. На самом деле это просто вопрос сокрытия императивных частей программного кода, а фактическое использование такой библиотеки находится в духе декларативного программирования. Примерами являются модульные тесты , например JUnit , NUnit …

Другая группа языков, классифицируемых как декларативные языки, — это предметно-ориентированный язык программирования или языки для решения конкретной проблемы.

Эти языки, как правило, неполные тюрингские . Примерами являются SQL для управления данными в базе данных, регулярные выражения или XSL для управления данными XML.

Декларативный язык программирования, как и любой язык программирования, должен иметь синтаксис и семантику. По этой причине общий XML без определенного типа документа не может быть включен в эту групп.

Вывод:

В этой статье вы прочитали что такое декларативный подход к программированию и всё остальное с этим связанное.

Источник

Оцените статью