Publicidad

lunes, 4 de julio de 2016

Que la Programación declarativa

Programación declarativa

La programación declarativa, en contraposición a la programación imperativa, es un paradigma de programación que está basado en el desarrollo de programas especificando o "declarando" un conjunto de condiciones, proposiciones, afirmaciones, restricciones, ecuaciones o transformaciones que describen el problema y detallan su solución. La solución es obtenida mediante mecanismos internos de control, sin especificar exactamente cómo encontrarla (tan sólo se le indica a la computadora qué es lo que se desea obtener o qué es lo que se está buscando). No existen asignaciones destructivas, y las variables son utilizadas con transparencia referencial.


Diferencia entre imperativo y declarativo

En la programación imperativa se describe paso a paso un conjunto de instrucciones que deben ejecutarse para variar el estado del programa y hallar la solución, es decir, un algoritmo en el que se describen los pasos necesarios para solucionar el problema.
En la programación declarativa las sentencias que se utilizan lo que hacen es describir el problema que se quiere solucionar; se programa diciendo lo que se quiere resolver a nivel de usuario, pero no las instrucciones necesarias para solucionarlo. Esto último se realizará mediante mecanismos internos de inferencia de información a partir de la descripción realizada.

Tipos de Programación declarativa

Existen varios tipos de lenguajes declarativos:
  • Los lenguajes lógicos, como Prolog.
  • Los lenguajes algebraicos, como Maude y SQL.
  • Los lenguajes funcionales, como Haskell y Erlang.

Ventajas de la Programación declarativa

Se ha dicho que los lenguajes declarativos tienen la ventaja de ser razonados matemáticamente, lo que permite el uso de mecanismos matemáticos para optimizar el rendimiento de los programas.
Son fiables, elegantes y expresivos.

Algunos lenguajes de Programación declarativa

  • ASP (Answer Set Programming)
  • Haskell (Programación funcional)
  • ML (Programación funcional)
  • Lisp (Programación funcional)
  • Prolog (Programación lógica)
  • F-Prolog (Programación lógica difusa)
  • Curry (Programación lógico-funcional)
  • SQL
  • QML



No hay comentarios:
Write comentarios

Publicidad