Diferencia entre revisiones de «Programación Declarativa»

(Página creada con '<div align="justify"> {{Definición |nombre= Programación Declarativa |imagen= Lenguajes.png |tamaño= |concepto= '''Programación Declarativa.''' La Programación declarativa...')
 
(Carácterísticas)
Línea 34: Línea 34:
  
 
Son fiables, elegantes y expresivos.
 
Son fiables, elegantes y expresivos.
 
==Carácterísticas==
 
 
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 que es lo que se desea obtener o que es lo que se está buscando). No existen asignaciones destructivas, y las variables son utilizadas con Transparencia referencial
 
 
Aunque en la Programación Declarativa cabe más de un paradigma de programación, se ha optado por centrar la asignatura en el estudio de la denominada Programación Lógica, el cual está basado en el cálculo de proposiciones y sus relaciones lógicas.
 
 
La programación declarativa es un estilo de programación En el que el programador especifica qué debe computarse más bien que cómo deben realizarse los cómputos.
 
 
“programa = lógica + control” (Kowalski)
 
(“algoritmos + estructuras de datos = programas” (Wirth))
 
 
El componente lógico determina el significado del programa mientras que el componente de control solamente afecta a su eficiencia. La tarea de programar consiste en centrar la atención en la lógica dejando de lado el control, que se asume automático, al sistema.
 
 
La característica fundamental de la programación declarativa es el uso de la [[lógica]] como [[lenguaje de programación]]:
 
 
*Un [[programa]] es una teoría formal en una cierta lógica, esto es, un conjunto de fórmulas lógicas que resultan ser la especificación del problema que se pretende resolver, y
 
*La computación se entiende como una forma de inferencia o deducción en dicha lógica.
 
 
Los principales requisitos que debe cumplir la lógica empleada son:
 
*disponer de un lenguaje que sea suficientemente expresivo;
 
*disponer de una semántica operacional (un mecanismo de cómputo que permita ejecutar los programas);
 
*disponer de una semántica declarativa que permita dar un significado a los programas de forma independiente a su posible ejecución;
 
  
 
==Resultados de corrección y completitud==
 
==Resultados de corrección y completitud==

Revisión del 19:42 26 abr 2011

Programación Declarativa
Información sobre la plantilla
Lenguajes.png
Concepto:Programación Declarativa. La Programación declarativa es un paradigma de programación basado en la lógica en el que se estudian de forma simple muchos aspectos avanzados de los lenguajes de programación modernos.

Programación Declarativa. La Programación declarativa es un paradigma de programación basado en la lógica en el que se estudian de forma simple muchos aspectos avanzados de los lenguajes de programación modernos.

Diferencias 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, 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.

Aplicaciones

Este estilo de programación encuentra numerosas aplicaciones industriales en campos como las bases de datos, ingeniería del software, procesadores de lenguajes, lenguaje natural, investigación operativa, seguridad de redes, etc.

Ventajas

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.

  • Elegancia, claridad, sencillez, potencia y concisión
  • Semánticas claras, simples y matemáticamente bien fundadas
  • Cercanos al nivel de abstracción de las especificaciones formales/informales de los problemas a resolver
  • Referencialmente transparentes: Comportamiento matemático adecuado que permite razonar sobre los programas
  • Soportan técnicas muy avanzadas de desarrollo, mantenimiento y validación de programas
  • Altas dosis de paralelismo implícito
  • Aplicaciones variadas y de gran interés

Son fiables, elegantes y expresivos.

Resultados de corrección y completitud

Según la clase de lógica que empleemos como fundamento del lenguaje declarativo obtenemos los diferentes estilos de programación declarativa.

Clase de lógica Estilo

  • Ecuacional Funcional
  • Clausal Relacional
  • Heterogenea Tipos
  • Géneros ordenados Herencia
  • Modal S.B.C.
  • Temporal Concurrencia


Algunos lenguajes declarativos

  • Existen varios tipos de lenguajes declarativos:
 Los lenguajes lógicos, como 
 *Prolog (Programación funcional),
 *ML (Programación funcional),
 *Lisp (Programación funcional), 
 *Curry (Programación Lógico-Funcional)
 *F-Prolog (Programación Lógica Difusa)

==Fuentes [Programación Declarativa]

Referencias

En estas referencias encontrará recursos de utilidad:

Vea además

Lenguajes de Programación]