Prólogo


Prolog es un lenguaje de programación lógica asociado con la inteligencia artificial y la lingüística computacional . [1] [2] [3]

Prolog tiene sus raíces en la lógica de primer orden , una lógica formal y, a diferencia de muchos otros lenguajes de programación , Prolog está diseñado principalmente como un lenguaje de programación declarativo : la lógica del programa se expresa en términos de relaciones , representadas como hechos y reglas . Se inicia un cálculo ejecutando una consulta sobre estas relaciones. [4]

El lenguaje fue desarrollado e implementado en Marsella, Francia, en 1972 por Alain Colmerauer con Philippe Roussel, basado en la interpretación procedimental de Robert Kowalski de las cláusulas de Horn . [5] [6]

Prolog fue uno de los primeros lenguajes de programación lógica [7] y sigue siendo el lenguaje de este tipo más popular en la actualidad, con varias implementaciones comerciales y gratuitas disponibles. El lenguaje se ha utilizado para la demostración de teoremas , [8] sistemas expertos , [9] reescritura de términos , [10] sistemas de tipos , [11] y planificación automatizada , [12] así como su campo de uso original previsto, el procesamiento del lenguaje natural. . [13] [14] Los entornos modernos de Prolog admiten la creación de interfaces gráficas de usuario., así como aplicaciones administrativas y en red.

Prolog es ideal para tareas específicas que se benefician de consultas lógicas basadas en reglas, como búsquedas en bases de datos , sistemas de control por voz y plantillas de llenado.

En Prolog, la lógica del programa se expresa en términos de relaciones y se inicia un cálculo ejecutando una consulta sobre estas relaciones. Las relaciones y consultas se construyen utilizando el tipo de datos único de Prolog, el término . [4] Las relaciones se definen mediante cláusulas . Dada una consulta, el motor Prolog intenta encontrar una refutación de resolución de la consulta negada. Si la consulta negada puede ser refutada, es decir, se encuentra una instanciación para todas las variables libres que hace que la unión de cláusulas y el conjunto único que consiste en la consulta negada sea falsa, se deduce que la consulta original, con la instanciación encontrada aplicada, es una consecuencia lógicaDel programa. Esto hace que Prolog (y otros lenguajes de programación lógica) sean particularmente útiles para aplicaciones de análisis de lenguaje, matemáticas simbólicas y bases de datos . Debido a que Prolog permite predicados impuros , verificar el valor de verdad de ciertos predicados especiales puede tener algún efecto secundario deliberado , como imprimir un valor en la pantalla. Debido a esto, al programador se le permite usar cierta cantidad de programación imperativa convencional cuando el paradigma lógico es inconveniente. Tiene un subconjunto puramente lógico, llamado "Prólogo puro", así como una serie de características extralógicas.