Programación declarativa

La programación declarativa  es un paradigma de programación en el que se especifica la especificación de una solución a un problema, es decir, se describe el resultado esperado, y no la forma de obtenerlo. Lo opuesto a la declarativa es la programación imperativa , en la que, a un nivel de detalle u otro, se requiere una descripción de la secuencia de pasos para resolver un problema. HTML y SQL se citan comúnmente como ejemplos de lenguajes declarativos .

Los programas declarativos no utilizan el concepto de estado, en particular, no contienen variables y operadores de asignación , se proporciona transparencia referencial . Lo más parecido a la programación "puramente declarativa" es escribir especificaciones ejecutables . En este caso, el programa es una teoría formal , y su ejecución es al mismo tiempo una prueba automática de esta teoría.[ aclarar ] ( correspondencia Curry-Howard ), y los componentes del proceso de desarrollo característicos de la programación imperativa ( diseño , refactorización , depuración y otros) quedan excluidos en este caso: el programa se diseña y se prueba a sí mismo[ aclarar ] .

La programación declarativa también incluye a menudo programación funcional y lógica . A pesar de que los programas en tales lenguajes a menudo contienen componentes algorítmicos, la arquitectura en el sentido imperativo (como algo separado de la codificación) también está ausente en ellos: el esquema del programa es directamente parte del código ejecutable [1] .

La programación orientada al lenguaje tiene como objetivo aumentar el nivel de declaratividad .

Los lenguajes informáticos "puramente declarativos" suelen ser Turing  -incompletos, ya que teóricamente no siempre es posible generar código ejecutable a partir de una descripción declarativa. Esto a veces conduce a disputas sobre la corrección del término "programación declarativa" (menos controvertido es "descripción declarativa de la solución" o, de manera equivalente, "descripción declarativa del problema").

Notas

  1. Entrevista con Simon Peyton Jones . Consultado el 9 de enero de 2016. Archivado desde el original el 12 de enero de 2016.

Literatura

Enlaces