Programação declarativa

Origem: Wikipédia, a enciclopédia livre.
Ir para: navegação, pesquisa
Text document with red question mark.svg
Este artigo ou secção contém uma ou mais fontes no fim do texto, mas nenhuma é citada no corpo do artigo, o que compromete a confiabilidade das informações. (desde abril de 2011)
Por favor, melhore este artigo introduzindo notas de rodapé citando as fontes, inserindo-as no corpo do texto quando necessário.

Programação declarativa é um paradigma de programação baseado em programação funcional, programação lógica ou programação restritiva. Tal termo é utilizado para discernir tais linguagens em relação à linguagens de programação imperativa.

Outra definição determina que um programa é declarativo se descreve o que ele faz e não como seus procedimentos funcionam. Dessa forma, linguagens de marcação são declarativas pois descrevem o que são suas estruturas e não como elas serão utilizadas. Tal definição foge do escopo pois não trata-se de linguagens de programação.

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.

linguagens funcionais que admitem tal abordagem incluem Erlang, Haskell e Lisp. Linguagens lógicas que admitem tal abordagem incluem Prolog e Mercury. Linguagens restritivas que admitem tal abordagem incluem Oz.

Linguagens específicas por domínio[editar | editar código-fonte]

Uma forma popular de programação declarativa é o uso de linguagens específicas por domínio, no qual domínio refere-se ao domínio de discurso, isto é, o assunto o qual a linguagem está descrevendo. Exemplos de linguagens nessa categoria incluem XSLT (para transformar documentos XML), SQL (para realizar requisições a bancos de dados) e TK Solver.

Ver também[editar | editar código-fonte]

Referências[editar | editar código-fonte]

Ligações externas[editar | editar código-fonte]