16 diciembre 2006

Quine

La programación tienes cosas muy extrañas, pero la metaprogramación más aún.

La metaprogramación consiste en crear programar que cuando se ejecuten creen otros programas. Por ejemplo, tu puedes escribir una página PHP que cuando la ejecuta el servidor crea una web con un trozo de código Javascript, eso es metaprogramación muy básica.

Pero a lo que vamos hoy, algunos programadores cuando se aburren, se ponen a escribir programas que al ejecutarse, muestran por pantalla su propio código fuente. Pero ojo, muestran el código fuente sin abrir el fichero y leerlo, tiene que estar el código fuente implícito dentro del programa. Esto es lo que se conoce como quine en honor a Willard Van Orman Quine.

En la Wikipedia se pueden encontrar ejemplos que quines en muchos lenguajes. Yo por más que miro los quine de C, no consigo entender su funcionamiento.

Por otra parte, el de Basic es el más sencillo:


10 LIST


Pero creo que eso es trampa también.