Download APUNTES de la asignatura PROGRAMACIÓN LÓGICA

Document related concepts

Mercury (lenguaje) wikipedia , lookup

Visual Prolog wikipedia , lookup

Tipo de dato algebraico wikipedia , lookup

Programación funcional wikipedia , lookup

Joy (lenguaje de programación) wikipedia , lookup

Transcript
APUNTES
d e la a s ig n a tu r a
PROGRAMACIÓN LÓGICA
Curso 2008-09
Marisa Navarro
Dep. Lenguajes y Sistemas Informáticos
Facultad de Informática de San Sebastián
Titulación: Ingeniería en Informática
Asignatura Optativa de Ciclo Indiferente
INDICE
1.
PROGRAMACION en PROLOG------------------------------------------------------------------------------------- 1
1.1. Sintaxis: Hechos, Preguntas y Reglas ------------------------------------------------------------------------- 3
1.2. Sintaxis: Objetos estructurados. Listas ----------------------------------------------------------------------- 7
1.3. Computación: Unificación y Regla de Resolución --------------------------------------------------------- 11
1.4. Estrategia de Resolución usada en PROLOG -------------------------------------------------------------- 15
1.5. Recorrido en el Espacio de Búsqueda ----------------------------------------------------------------------- 18
1.6. Aspectos Declarativos y Procedurales ----------------------------------------------------------------------- 21
2.
DEFINICIÓN RECURSIVA de PROGRAMAS ------------------------------------------------------------------ 25
2.1. Ejemplos de programas ----------------------------------------------------------------------------------------- 27
2.2. Comportamiento Recursivo e Iterativo ---------------------------------------------------------------------- 36
2.3. Recursión a izquierdas ------------------------------------------------------------------------------------------ 40
2.4. Generación infinita ---------------------------------------------------------------------------------------------- 43
3.
CONTROL en la PROGRAMACION LOGICA ----------------------------------------------------------------- 45
3.1. Control mediante el Orden en literales y sentencias------------------------------------------------------- 47
3.2. Control con cortes ----------------------------------------------------------------------------------------------- 51
3.3. Distintos usos del corte ------------------------------------------------------------------------------------------ 58
3.4. La negación como fallo finito ---------------------------------------------------------------------------------- 60
4.
OTROS ASPECTOS de PROLOG ---------------------------------------------------------------------------------- 63
4.1. Aritmética en PROLOG ---------------------------------------------------------------------------------------- 65
4.2. Predicados metalógicos ----------------------------------------------------------------------------------------- 67
4.3. Entrada / Salida -------------------------------------------------------------------------------------------------- 74
5.
EJEMPLOS de PROGRAMAS--------------------------------------------------------------------------------------- 79
5.1. Las Torres de Hanoi --------------------------------------------------------------------------------------------- 81
5.2. Reconocedor de Polinomios ----------------------------------------------------------------------------------- 82
5.3. Consulta a un Diccionario -------------------------------------------------------------------------------------- 83
5.4. Búsqueda en Espacio de Estados ----------------------------------------------------------------------------- 85
6.
AREAS de APLICACIÓN -------------------------------------------------------------------------------------------- 87
6.1. Bases de Datos ---------------------------------------------------------------------------------------------------- 89
6.2. Sistemas Expertos ------------------------------------------------------------------------------------------------ 99
6.3. Lenguaje Natural ---------------------------------------------------------------------------------------------- 108