Programación Declarativa
La programación declarativa se define a menudo como cualquier estilo de programación que no sea
imperativo. Varias otras definiciones comunes intentan definirlo simplemente contrastándolo con la
programación imperativa.
La programación declarativa es en la actualidad, el paradigma dominante de un conjunto de
dominios diversos y extensivos como: bases de datos, plantillas y gestión de configuración.
En informática, la programación declarativa es un paradigma de programación, un estilo de
construcción de la estructura y los elementos de los programas de computadora, que expresa la
lógica de una computación sin describir su flujo de control.
Los lenguajes declarativos comunes incluyen los de los lenguajes de consulta de bases de datos (por
ejemplo, SQL, XQuery), expresiones regulares, programación lógica, programación funcional y
sistemas de gestión de configuración.
Características de la programación declarativa
Expresividad: Muestra con claridad el signifcado de la progrmacion.
Extensible(regla del 10%-90%):
Programación Lógica
La programación lógica es un tipo de paradigmas de programación dentro del paradigma
de programación declarativa. El resto de los subparadigmas de programación dentro de la
programación declarativa son: programación funcional, programación con restricciones,
programas DSL (de dominio específico) e híbridos. La programación funcional se basa en
el concepto de función (que no es más que una evolución de los predicados), de corte más
matemático. La programación lógica gira en torno al concepto de predicado, o relación
entre elementos.
Características de la programación lógica:
Unificación de términos.
Mecanismos de inferencia automática.
Recursión como estructura de control básica.
Visión lógica de la computación.
Lenguajes en donde se emplean la programación lógica:
Los siguientes son algunos de los lenguajes de programación que emplean como
paradigma la programación lógica.
Prolog
Mercury
PALs
Actor Prolog
SequenceL
Datalog (Logic Programming in Python)
Ejemplo de un programa en programación lógica en el lenguaje de programación
“Prolog”:
:- use_module(library(http/thread_httpd)).
:- use_module(library(http/http_dispatch)).
:- http_handler(root(hello_word), say_hi, []).
Server (port) :-
http_server(http_dispatch, [port(Port)]).
Say_hi(_resquest) :-
format(‘content-tipe: text/plain~n~n’),
format(‘hello world!~n’).
Programación Funcional
La programación funcional es un paradigma de programación declarativa basado en el uso de
verdaderas funciones matemáticas. En este estilo de programación las funciones son ciudadanas de
primera clase, porque sus expresiones pueden ser asignadas a variables como se haría con cualquier
otro valor; además de que pueden crearse funciones de orden superior.
Características de la programación funcional
Carencia de efectos colaterales
no existencia de asignaciones de variables y la falta de construcciones estructuradas como
la secuencia o la iteración (recursividad)
Existen dos grandes categorías de lenguajes funcionales: los funcionales puros y los
híbridos
Funciones de datos primitivos
Definición y evaluación de funciones
Programación declarativa
Lenguajes donde se emplean la programación funcional:
LISP.
ML.
Haskell.
OCaml.
F#
Erlang.
Clojure.
Scala.
Ejemplo de un programa en programación lógica en el lenguaje de programación
“Java”:
Con la llegada de la versión 8 de Java y del uso de las expresiones Lambda, un nuevo
paradigma se ha incorporado a la programación con Java. El nuevo paradigma es lo que se
denomina Programación Funcional.
boolean found = false;
for(String city: cities)
{
if(city.equals("Chicago"))
{
found = true;
break;
}
}
System.out.println("Found chicago?:" + found);