Prólogo


Prolog es un lenguaje de programación lógico 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á pensado 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 las cláusulas Horn de Robert Kowalski . [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 gratuitas y comerciales disponibles. El lenguaje se ha utilizado para probar 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 previsto original, procesamiento de 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 bases de datos de búsqueda , sistemas de control de 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 las 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 de 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 las cláusulas y el conjunto singleton que consta de la consulta negada sean falsos, se sigue 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 base de datos, matemáticas simbólicas y análisis de lenguaje. 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.