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