Paradigmas logicos de programacion

Solo disponible en BuenasTareas
  • Páginas : 6 (1291 palabras )
  • Descarga(s) : 0
  • Publicado : 3 de octubre de 2010
Leer documento completo
Vista previa del texto
1.- Introducción
    1.1.- Orientación de este tutorial
    La pretensión de este curso es tanto práctico como teórico; los lenguajes lógicos (nos centraremos en el lenguaje Prolog) nos permiten un tipo de programación interesantísimo y con multitud de aplicaciones, pues su lógica está basada en nociones matemáticas de relaciones e inferencia lógica. Prolog es un lenguaje de tipo declarativo,lo que significa que en lugar de describir al ordenador lo que queremos que haga como en los lenguajes habituales, le daremos una serie de hechos y reglas que describiren sus relaciones.
    No obstante, también daré un repaso a la programación lógica teórica, tocando aunque sea por encima temas como la unificación o los métodos de resolución que servirán para poder entender cómo funciona Prolog.Es un lenguaje que se sale de lo normal, con una potencia increíble, pero hay que abrir la mente ante todo si uno está muy encerrado en lenguajes imperativos (C, Pascal, etc). Quien sepa algo de lenguajes funcionales lo tendrá más fácil, pero aun así hay cambios bastante importantes.
    En fin, suerte con el tutorial, he corregido varias veces el texto e intentado hacer lo posible por que todoesté claro; si estáis impacientes saltad diréctamente al tercer capítulo y saltaros estos rollos, pero tampoco vienen mal...
 
    1.2.- Lógica
    La lógica es un método para la formalización de los procesos del pensamiento humano, basado en axiomas de los cuales deducimos consecuencias. La lógica clásica aristotélica o lógica proposicional, tenía este aspecto:
    - Los hombres son mortales    - Juan es un hombre
    Conclusión: Juan es mortal.
    A la lógica aristotélica le siguió la que ahora utilizamos, lógica de predicados, basada en símbolos como "Para Todo" (representado por una A invertida) y "Existe" (representado por una E invertida). Nosotros usaremos Aes y Es mayúsculas dentro de este tutorial sin "dar la vuelta", pero creo que resultará más que claro lo que significandonde se encuentren.
    Este lenguaje de símbolos, nos permitiría formalizar las anteriores oraciones así:
    - Ax EsHombre(x) -> EsMortal(x)
    - Eshombre(Juan)
    - Conclusión: EsMortal(Juan)
    Es decir, que como para todo hombre se da que es es mortal, y dado que Juan es hombre, deducimos que Juan es mortal. Como vemos, nos estamos basando en una serie de aserciones (como que Juan esun hombre) y en teoremas (como que todo hombre es mortal) para realizar nuestras deducciones y solucionar problemas.
    Además, lo que acabo de mostrar (la implicación) tiene otros significados; por ejemplo, no puede darse No (EsMortal(Juan) y al tiempo EsHombre(Juan) ya que entonces la sentencia Ax EsHombre(x) -> EsMortal(x) sería falsa.
    1.3.- Operaciones básicas y algunas reglas
   Y/&/AND: Entre dos operandos A y B, el resultado de esta operación es verdadero sí y sólo sí A y B son verdaderos.
    O/OR: Entre A y B, el resultado es cierto si A es cierto, B es cierto o lo son los dos.
    XOR: Es el "OR exclusivo", donde el resultado entre A y B es verdadero si A es verdadero o B es verdadero, pero no si lo son los dos o no lo es ninguno.
    NOT/NO: Es la negación de unasentencia; puede sin embargo operar sobre un grupo de ellas, por ejemplo, NO (A Y B). Para ello usamos dos reglas básicas:
    -> NO ( A Y B ) es lo mismo que NO(A) O NO(B); Si no puede ser que llueva y haga sol, entonces o no llueve o no hace sol ( o las dos, claro ).
    -> NO (A O B), es igual que decir NO(A) Y NO(B) - por supuesto estamos con un O equivalente al OR no exclusivo, esto es, que AOR B sería cierto si se da A, si se da B o si se dan ambos.
    Implicación; A -> B significa que si se da A entonces se dará B; además, implica que si no se da B no puede darse A. Es interesante observar que A -> B es equivalente a NO(A) O (B). Dejo como ejercicio mental comprobarlo (cosa sencilla) ;-)
    Doble implicación; A B. Si se da A se dará B y viceversa, es decir, que o se dan los...
tracking img