Resucitando KL1: el lenguaje del proyecto japonés de Quinta Generación, treinta años después
Entre 1982 y 1992, en la misma época en que las vidrieras electrónicas de Tokio ya anunciaban audio, video y calculadoras a los gritos1, Japón gastó el equivalente a 850 millones de dólares en el Fifth Generation Computer Systems Project (5GCS): una apuesta estatal a redefinir la computación alrededor de la programación lógica concurrente, corriendo sobre hardware paralelo diseñado específicamente para eso. El lenguaje central del proyecto se llamaba KL1 — Kernel Language 1. El proyecto se cerró en 1992 sin haber producido la “máquina que piensa” que prometía. Pero el código sobrevivió. Hace unos años lo recompilé en una laptop moderna y lo hice correr. Esta es la historia de esa reconstrucción.
By César Ballardini
Leer más«Soy mi propio abuelo»: modelar una humorada folklórica en Prolog
Hay una humorada que circula en castellano desde hace décadas, en versión video, en versión chiste de sobremesa de domingo con demasiada familia alrededor de la mesa1, en versión “te lo cuento y no me vas a creer”2. La escuché hace años, la conté mal un par de veces, y en algún momento me pareció obvio qué hacer con ella: no volver a contarla de memoria y arriesgarme a perder el hilo, sino escribirla en un lenguaje que no se pierde nunca en un árbol genealógico. Ese lenguaje es Prolog.
By César Ballardini
Leer másEl intérprete que ejecuta el paper de Turing tal cual está escrito
Todo el mundo que estudió ciencias de la computación implementó “una máquina de Turing” en algún momento1: una cinta, un cabezal, una tabla de transiciones (estado, símbolo) → (estado, símbolo, movimiento). Es un ejercicio válido, pero no es lo que Turing escribió en 1936. Su notación real —la que usa en On Computable Numbers, with an Application to the Entscheidungsproblem2— es bastante más rica que eso, y casi nadie la implementa como está en el paper. Yo quería saber si podía.
By César Ballardini
Leer más