Ir al contenido

¿Qué es Prolog?

Una explicación sencilla para los no entendidos

Es conocimiento común que las computadoras funcionan gracias a que alguien las “programa”; de lo contrario son incapaces de hacer algo por sí mismas (esto nos permite quedarnos tranquilos de que nuestro mundo no se convertirá en el de Terminator, al menos por ahora). Es decir, es necesario indicar mediante instrucciones qué debe hacer una computadora en cada paso para llevar a cabo una tarea específica. Ahora bien, esas instrucciones no se escriben directamente en castellano (ni siquiera en inglés) sino que se emplean ciertos “idiomas de computadora” llamados lenguajes de programación.

Como cada persona, centro de investigación o universidad, en cada parte del planeta, tienen sus propias ideas de cómo debería ser el lenguaje perfecto, o el más apropiado para una tarea específica, es fácil deducir que se han inventado muchísimos (Wikipedia lista unos 700 lenguajes “oficiales”, pero se estima que son miles, ya que continuamente se desarrollan nuevos lenguajes o se adaptan otros). La mayoría de ellos son “procedurales” o “imperativos”, queriendo decir con esto que cada instrucción es efectivamente una orden: realizar una suma, iniciar una variable, mostrar un mensaje en la pantalla, y demás. Cualquier programa comercial está formado por miles de estas instrucciones junto con sus datos, ocupando líneas de código. Un ejemplo clásico aunque antiguo es el BASIC (con el que muchos aprendieron a programar); otros ejemplos clásicos son Pascal y C; un ejemplo más moderno podría ser Java.

Prolog, en cambio, es un lenguaje “declarativo”; en lugar de decirle a la computadora “cómo” se resuelve un problema, mediante Prolog puedo (dentro de ciertos límites) describir “cuál” es el problema, y que ella se encargue de solucionarlo.

El lenguaje apareció en 1972, y en la década del ’80 tuvo mucha publicidad, a raíz de que Japón había decidido que Prolog sería el lenguaje óptimo para su proyecto de computadoras de quinta generación. Si bien esto último no se produjo, lo cierto es que Prolog alcanzó un status de lenguaje superior, dadas sus ventajas para el estudio y solución de problemas que hoy se consideran clásicos de la disciplina conocida como Inteligencia Artificial.

En lo personal, el lenguaje me fascinó tanto (aún hoy lo hace) que logré convencer a mi director de tesis de implementar uno como proyecto (algo que yo ya había investigado por mi cuenta antes y tenía, por lo tanto, bien masticado), con la excusa que serviría para la formalización lógica de problemas de ingeniería, lo cual también es cierto, debo decir. La construcción de un nuevo intérprete con la introducción de algunas «licencias poéticas» es un posible proyecto para mi vejez.

Aquí dejo algunos datos para aquellos que sientan curiosidad:

  • Una descripción general puede encontrarse en este artículo de Wikipedia en castellano y en inglés.
  • Una lista con todos los paquetes para programar en Prolog puede encontrarse en la página de preguntas frecuentes del Grupo de Teoría y Lógica, una asociación con sede en Austria.