Antes de que se impusiera Python, estos fueron los lenguajes con los que se desarrollaba inteligencia artificial

Antes de que se impusiera Python, estos fueron los lenguajes con los que se desarrollaba inteligencia artificial
3 comentarios Facebook Twitter Flipboard E-mail

Hoy en día, aprender inteligencia artificial casi se ha convertido en sinónimo de aprender a programar en Python. Este lenguaje de programación creado por Guido Van Rossum en 1991 es, con diferencia, el más usado hoy en día en proyectos de inteligencia artificial, sobre todo en el campo del 'machine learning'.

Ayuda a ello, además de su popularidad como lenguaje de programación generalista (y también en campos relacionados, como el análisis de datos) que todas las grandes bibliotecas de IA (Keras, TensorFlow, SciPy, Pandas, Scikit-learn, etc) estén diseñadas para trabajar con Python.

Sin embargo, la inteligencia artificial es mucho más antigua que Python, y hubo otros lenguajes que destacaron en este campo durante décadas antes de su desembarco. Echemos un vistazo a cuáles eran:

IPL

El Information Processing Language (IPL) es un lenguaje de bajo nivel (casi tanto como el ensamblador) que fue creado en 1956 con el fin de demostrar que los teoremas expresador en el 'Principia Mathematica' por los matemáticos y filósofos Bertrand Russell y Alfred North Whitehead podían ser probados recurriendo a la computación.

IPL introdujo en la programación características que hoy siguen plenamente vigentes como los símbolos, la recursividad o el uso de listas. Este último, un tipo de dato tan flexible que permitía a su vez introducir una lista como elemento de otra lista (que a su vez podía introducir otra lista como elemento, etc.) resultó fundamental a la hora de usarlo para desarrollar los primeros programas de IA, como Logic Theorist (1956) o el programa de ajedrez NSS (1958).

Pese a su importancia en la historia de la IA, varios factores (el primero de ellos, lo complejo de su sintaxis) hizo que fuera rápidamente sustituido por el siguiente lenguaje de la lista.

LISP

LISP es el más antiguo de los lenguajes de programación dedicados a la inteligencia artificial entre aquellos que aún siguen en uso; y también es el segundo lenguaje de programación de alto nivel de la historia: fue creado en 1958 (un año después que FORTRAN y uno antes que COBOL) por John McCarthy, quien dos años antes ya había sido responsable de acuñar el término 'inteligencia artificial'.

McCarthy había desarrollado poco antes un lenguaje denominado FLPL (FORTRAN List Processing Language) una extensión de FORTRAN, y decidió recopilar en un mismo lenguaje la naturaleza de alto nivel de FLPL, todas las novedades aportadas por IPL, y el sistema formal conocido como cálculo lambda. El resultado fue bautizado como LISP (de 'LISt Processor').

Al mismo tiempo que desarrollaba FLPL, McCarthy también formulaba la llamada 'poda alfa-beta', una técnica de búsqueda que reduce el número de nodos evaluados en un árbol de juego. Y, para implementarla, introdujo un elemento tan fundamental en la programación como son las estructuras if-then-else.

Rápidamente, los programadores se enamoraron de la libertad que les ofrecía la flexibilidad de este lenguaje, y de su faceta como herramienta de prototipado. Así, durante el siguiente cuarto de siglo, LISP se convirtió en el lenguaje de referencia en el ámbito de la IA. Con el tiempo, LISP se fragmentó en toda una serie de 'dialectos' aún vigentes en varios ámbitos de la computación, como Common LISP, EMACS LISP, Clojure, Scheme o Racket.

Lisp
Ejemplo de código Common LISP.

PROLOG

El lenguaje PROLOG (del francés 'programmation en logique'), del que ya os hemos hablado en otras ocasiones, nació en un momento duro para el desarrollo de la inteligencia artificial, a las puertas del primer 'Invierno de la IA', cuando el furor inicial por las aplicaciones de esta tecnología se estrellaron contra el escepticismo provocado por la ausencia de avances, lo que generó desinversión pública y privada en su desarrollo.

Concretamente, fue creado en 1972 por el profesor de ingeniería informática francés Alain Colmeraurer, con el objetivo de introducir en el desarrollo de software el uso de las cláusulas de Horn, una fórmula de la lógica proposicional. Aunque globalmente nunca llegó a ser tan usado como LISP, sí se convirtió en el principal lenguaje de desarrollo de IA en su continente de origen (así como en Japón).

Al ser un lenguaje basado en el paradigma de programación declarativa —como LISP, por otra parte—, su sintaxis es muy diferente de la de los típicos lenguajes de programación imperativa como Python, Java o C++.

La facilidad que PROLOG proporciona a la hora de gestionar métodos recursivos y las coincidencias de patrones provocaron que IBM apostara por implementar PROLOG en su IBM Watson para tareas de procesamiento de lenguaje natural.

Prolog
Ejemplo de código PROLOG en la IDE SWI-Prolog.

Una versión anterior de este artículo se publicó en 2021.

Comentarios cerrados
Inicio