Programacion Logica

Páginas: 8 (1816 palabras) Publicado: 1 de febrero de 2013
Contenido

Predicados Extra-lógicos

Ingeniería Informática Ingeniería Técnica en Informática de Sistemas Departamento de Lenguajes y Ciencias de la Computación Universidad de Málaga

1. 2. 3. 4. 5. 6.

Predicados extra-lógicos Predicados aritméticos Entrada/salida de términos Unificación y no unificación Comparación de términos Declaración de operadores

Predicados Extra-lógicos

2Prolog = Programación lógica
Base teórica: Prolog puro se basa exclusivamente en la lógica de Horn consultas

Predicados Extra-lógicos

Programa (cláusulas de Horn) Motor de Inferencia (SLD-Resolución)

respuestas computadas

Ventajas: análisis y transformación de programas Inconvenientes: acceso a recursos hardware/software
Predicados Extra-lógicos 4

Prolog = Programación lógica+ Extra-lógica
Aplicación práctica: extendemos extra-lógicamente el lenguaje para dar acceso a ciertos recursos (aritmética, entrada/salida…) consultas

Predicados extra-lógicos (I)
Características comunes: están predefinidos por el sistema Prolog (bibliotecas) se resuelven al margen de la SLD-Resolución, aprovechando el hardware/software de la plataforma tienen asociado un algoritmo deevaluación cuya ejecución termina en éxito o fracaso, o bien genera un error suelen ser deterministas (respuesta única) y soportar sólo algunos usos Ventajas: aplicación práctica, expresividad, eficiencia Inconvenientes: dificulta análisis y transformación de programas
5 Predicados Extra-lógicos 6

Programa (cláusulas de Horn) Motor de Inferencia (SLD-Resolución) + Evaluador Extra-lógicoPredicados Extra-lógicos

respuestas computadas

Predicados extra-lógicos (y II)
Sólo estudiaremos algunos predicados extra-lógicos: aritméticos entrada/salida comparación de términos declaración de operadores Anotaremos las cabeceras de los predicados extra-lógicos con los usos posibles (+ entrada, - salida, ? entrada o salida): Ejemplo: is(?X,+Y) read(-X) write(+X)
Predicados Extra-lógicos 7Predicados Aritméticos

Predicados aritméticos
Permiten evaluar expresiones aritméticas: (1 + sqrt(5)) / 2 = 1.61803 Para incorporar expresiones aritméticas a Prolog es necesario: extender la sintaxis para soportar operadores (1 + sqrt(5)) / 2 añadir funciones aritméticas predefinidas (sqrt,sin, …) añadir un predicado extra-lógico que solicite la evaluación de expresiones aritméticas (Prologno evalúa términos)

Operadores Prolog
Definición: un operador Prolog es un functor de aridad 1 o 2 que puede escribirse de forma prefija, postfija o infija, prescindiendo de los paréntesis Ejemplo: X + Y - X +(X,Y) -(X) % +/2, infijo % -/1, prefijo sintáctico, definen no tienen y

son un mecanismo exclusivamente asociada ninguna operación (semántica) para evitar asociatividad ambigüedades,se

prioridades

pueden ser predefinidos o declarados por el usuario
Predicados Extra-lógicos 9 Predicados Extra-lógicos 10

Operadores aritméticos
Prolog predefine los siguientes operadores aritméticos: X X X X X X X + Y – Y X * Y / Y // Y mod Y ** Y suma resta menos unario producto cociente cociente división entera resto división entera potencia

Funciones aritméticas básicas
Prologpredefine las siguientes funciones aritméticas básicas: abs(X) sign(X) max(X,Y) min(X,Y) random(X) sqrt(X) floor(X) ceiling(X) round(X) truncate(X)
Predicados Extra-lógicos

al escribir 5 + 3 * 7 Prolog entiende +(5, *(3,7)) Prolog no evalúa los términos: +(5, *(3,7)) ≠ 26
Predicados Extra-lógicos 11

valor absoluto signo (-1, 0, 1) máximo mínimo entero aleatorio entre 0 y X-1 raíz cuadradatecho suelo redondeo truncamiento

12

Otras funciones aritméticas
trigonométricas: sin(X), cos(X), tan(X) asin(X,Y), acos(X), atan(X), atan(X,Y) logarítmicas y exponenciales: log(X), log10(X) exp(X) constantes: pi, e
Predicados Extra-lógicos

Expresión aritmética
Definición: un término Prolog es un expresión aritmética si 1) sus functores son operadores o funciones aritméticas 2) sus...
Leer documento completo

Regístrate para leer el documento completo.

Estos documentos también te pueden resultar útiles

  • Programacion Logica
  • Programacion Logica
  • logica y programacion
  • lógica de programación
  • Programacion Logica
  • LOGICA DE PROGRAMACIÓN
  • LOGICA DE PROGRAMACION
  • Logica De Programacion

Conviértase en miembro formal de Buenas Tareas

INSCRÍBETE - ES GRATIS