2/24/2011
Programación Declarativa
Lenguajes de Programación – Jueves M4
Profr. Carlos Bernardo Garza
24 de febrero de 2010
Integrantes:
Jesús Antonio Soto Velázquez – 1570031
Luis David Corona Guerrero - 1446332
Paradigma Declarativo
Basado en el pensamiento humano de las matemáticas.
Elementos en conjunto: condiciones, proposiciones,
afirmaciones, restricciones, ecuaciones o
transformaciones que describen el problema y solución.
No se especifica «cómo» llegar a la solución, sino el
«qué».
Se utilizan mecanismos internos para llegar a la
solución.
1
2/24/2011
Características
Conjunto de sentencias (no instrucciones).
No se admite la asignación destructiva.
Cualquier secuencia de ejecución conducirá al mismo
resultado.
«programa = lógica + control» (Kowalski)
El componente lógico determina el significado del
programa, mientras que el de control afecta su
eficiencia.
Se enfoca en el uso de la lógica como herramienta.
Ventajas
Son razonados matemáticamente
Fiables
Elegantes
Expresivos
Cortos
Legibles
Paralelismo implícito
2
2/24/2011
Estilos
Dependiendo de la clase de lógica empleada como
fundamento del lenguaje declarativo, se desprenden
diferentes estilos:
Estilo Funcional
Programación Funcional.- Basada en el concepto
de función y su definición mediante ecuaciones.
Se centra en la evaluación de expresiones
(funciones) para obtener un resultado.
Su teoría básica es el lambda cálculo, modelo de
cómputo eficiente.
Ejemplos: LISP, Hope, Haskell, Miranda, Mercury,
R.
3
2/24/2011
Lenguajes Lógicos
Lenguajes de programación para modelar problemas
lógicos. Cada procedimiento puede ser interpretado
como una relación expresada por una proposición
lógica.
Considera:
programas = teorías
ejecución = búsqueda de pruebas
programación = modelización
Ejemplos: PROLOG, Gödel, Mercury
Aplicaciones
Principalmente aplicaciones industriales de campos
como:
Bases de datos
Ingeniería de software
Procesadores de lenguajes
Lenguaje natural
Investigación operativa
Seguridad de redes
Inteligencia Artificial
4
2/24/2011
Referencias Bibliográficas
http://www.monografias.com/trabajos38/tipos-lenguajesprogramacion/tipos-lenguajes-programacion2.shtml
http://elisa.dyndns-web.com/~elisa/teaching/prog/lenguajes/2010/
http://www.ii.uib.no/~bezem/Prolog_Tutorial.pdf
http://www.mozart-oz.org/documentation/tutorial/node12.html
http://babel.ls.fi.upm.es/teaching/prog_decl/Material/Slides/sesion1.pdf
http://www.inf-cr.uclm.es/www/pjulian/teaching/sl_apPD.pdf
http://www.cs.us.es/cursos/pd/temas/tema-14.pdf
http://es.wikipedia.org/wiki/Programaci%C3%B3n_declarativa
5