Yusuke Endoh ha tenido la interesante idea de crear Quine Relay, un pequeño programa escrito en Ruby que se encarga de generar otro en Scala y este al ser interpretado genera otro en Scheme y este a su vez vuelve a generar otro código, y así sucesivamente, pasando por 50 lenguajes de programación y al final devolverá el código original con el que empezó la cadena (el que está escrito en Ruby y podemos descargar).
Llevar a cabo el experimento no es una tarea demasiado difícil, pero lleva su tiempo. Está realizado sobre Ubuntu 13.04 y es estrictamente necesario realizarlo sobre este sistema o uno muy similar debido a los interpretes usados, para evitar alteraciones tras el paso por 50 lenguajes y porque sería más difícil llevarlo a cabo en Windows, solamente instalar todos los interpretes es una tarea tediosa, mientras que en un sistema basado en Debian se puede usar apt-get
.
Esto es todo lo que debemos de instalar para hacer el experimento (hay parte de los recursos que los implementa el propio sistema y no aparecen en el comando para la instalación):
apt-get install algol68g bash beef boo clisp clojure1.4 coffeescript
fp-compiler g++ gauche gawk gcc gforth gfortran ghc gnat gnu-smalltalk
gobjc golang groovy icont intercal iverilog jasmin-sable llvm lua5.2
make mono-devel mono-mcs nodejs ocaml octave open-cobol openjdk-6-jdk
parrot perl php5-cli pike7.8 python r-base regina-rexx ruby1.9.3 scala
swi-prolog tcl8.5 ucblogo valac
La prueba se realiza con el archivo llamado QR.rb
y en el repositorio del experimento, en GitHub, encontramos toda la lista de comandos a usar para realizar este curioso experimento.
Más información | Quine Relay - GitHub