¿Qué es el lenguaje de Prolog?
Prolog es un lenguaje de programación de computadoras que se basa en la lógica. La mayoría de los lenguajes de computadora se basan en los pasos necesarios para resolver un problema. El lenguaje Prolog, por otro lado, es un lenguaje "declarativo" que indica las relaciones lógicas entre las entidades. La forma de resolver el problema se deja a la computadora. El nombre Prolog proviene de la programación francesa en Logique, es decir, lógica de programación.
El siguiente es un programa Prolog simple:
Ancestro (F, C):- Padre (F)
Ancestro (P, Q):- Padre (P, R), Ancestro (R, Q)
Padre (John, Jim).
Padre (Jim, Jerry).
Padre (Jerry, Jason).
Padre (Jerry, Jeff).
Padre (Jason, Joshua).
El programa anterior indica truismos. Si F es padre de C, entonces F es un antepasado de C. Si P es el padre de alguna persona R que es un antepasado de Q, entonces P es un antepasado de Q. Se dan varios hechos verdaderos, como John es el padre de Jim. Si entonces se plantea una pregunta de problema en cuanto a si John esUn antepasado de Jeff, obtenemos la respuesta "sí" como se muestra a continuación:
?- Ancestro (John, Jeff).
Sí
Si los antepasados de Joshua son de interés, entonces el programa muestra a todos los antepasados de la siguiente manera:
?- Ancestro (A, Joshua)
A = Jason
A = jerry
A = jim
A = John
Tenga en cuenta que en las dos instancias anteriores, el programa no dijo cómo hacer la evaluación. Por ejemplo, no indicó si comenzar a la persona mayor y abrirse camino hacia la persona más joven o viceversa. También intercambiando las piezas como a continuación:
antepasado (p, q):- antepasado (r, q), padre (p, r)
No daría ninguna diferencia en el programa, ya que ambas partes en el lado derecho deben ser verdaderas para que el lado izquierdo sea verdadero.
El lenguaje Prolog se centra en las relaciones, y no en cómo resolver el problema. Durante la ejecución del programa, PROLOG crea un número de estado verdaderoMents, creando una base de conocimiento. En el ejemplo anterior, la base de conocimiento, en ningún orden en particular, tendría antepasado (John, Jim), antepasado (Jim, Jerry), antepasado (John, Jerry), antepasado (Jim, Jason), antepasado (John, Jason), y así sucesivamente. Esta base de conocimiento puede continuar aumentando a medida que el programa se ejecuta, y se puede buscar eficientemente para obtener soluciones. La ejecución puede usar procesamiento paralelo, ejecución simultánea de varias computadoras.
El lenguaje Prolog se usa en varias áreas. Comenzó en sistemas orientados a idiomas naturales como el inglés; El lenguaje natural es una de las áreas de inteligencia artificial. El lenguaje Prolog también se usa en matemáticas simbólicas, incluida la álgebra. Se utiliza para probar teoremas, en sistemas expertos y en sistemas de control, entre muchas otras aplicaciones.