programming paradigm that expresses the logic of a computation without describing its control flow
Programação declarativa é um paradigma de programação baseado em programação funcional, programação lógica e programação restritiva. Tal termo é utilizado para discernir tais linguagens em relação à linguagens de programação imperativa. Esta programação dita que o programador deve modelar um dado problema através de assertivas acerca dos objetos do universo de discurso, ou seja, definindo o relacionamento lógico existente entre a cabeça e o corpo da cláusula, e nunca descrevendo como seus procedimentos funcionam. As soluções declarativas são usualmente mais fáceis de desenvolver e possuem a clareza e limpidez da pura lógica. É considerada o paradigma fundamental da programação lógica, sendo o oposto da programação procedimental, que é típica das linguagens convencionais. Em particular, a programação restritiva e a programação lógica descrevem propriedades da solução desejada, não especificando como o algoritmo em si deve agir. Apesar disso a maioria das linguagens desses paradigmas permite que os algoritmos sejam implementados com detalhes, então não constituem uma linguagem declarativa pura por definição. Similarmente, é possível escrever programas de forma declarativa utilizando linguagens de programação imperativas. Isso pode ser obtido utilizando métodos como encapsulamento para esconder detalhes de implementação fora de uma biblioteca. A programação declarativa geralmente considera os programas como teorias de uma lógica formal e os cálculos como deduções nesse espaço lógico e busca simplificar bastante a escrita e desenvolvimento de programas paralelos. Linguagens funcionais que admitem tal abordagem incluem Erlang, Haskell e Lisp. Linguagens lógicas que admitem tal abordagem incluem Prolog e . Linguagens restritivas que admitem tal abordagem incluem Oz. Existem ainda as linguagens baseadas em consultas de banco de dados (por exemplo, SQL , XQuery).
Abstract from DBpedia / Wikipedia · CC BY-SA
via Wikidata sitelinks · CC0
Discovered by embedding cosine similarity (sentence-transformers MiniLM, 384-dim).