Cómo escribir un quine: una guía con alegoría y ejemplos en Python

Fuentes: How to write a quine

Un quine es un programa que imprime su propio código fuente sin recurrir a introspección, una idea clásica de la informática que resulta a la vez desconcertante y elegante. Este texto explica, en dos partes, cómo construir uno. En la primera se recurre a una alegoría: una máquina capaz de fabricar cualquier objeto a partir de un plano, equivalente a la función print() de Python. El relato introduce varias máquinas anidadas que producen máquinas, en cuyo portaplanos se inserta el plano de la máquina madre con el hueco marcado, hasta llegar a una máquina que tras producir su copia coloca automáticamente el plano en el lugar previsto. Esta metáfora sirve para mostrar de forma intuitiva por qué un quine funciona: la clave es que el programa contiene una descripción de sí mismo con un marcador que es rellenado en tiempo de ejecución por el propio código. En la segunda parte, el artículo traslada esa idea a Python. Parte del programa print(), equivalente a la máquina sin plano, y avanza paso a paso hacia print('print()'), un programa que imprime otro programa. Tras varios experimentos mentales sobre qué ocurre al anidar plantillas y dejar un marcador vacío, el autor plantea el equivalente a modificar la máquina para que, tras crear el resultado, copie el plano y lo inserte en el hueco marcado. Así se llega a la estructura print('print(here)'), donde here será sustituido por la propia cadena antes de imprimir. Aunque el texto se corta antes de completar la sustitución final, sienta las bases para escribir quines en Python y otros lenguajes, mostrando los problemas habituales (escapado de comillas, anidamiento de cadenas) y cómo resolverlos. Es un manual divulgativo dirigido a programadores con curiosidad por los fundamentos de la computación, sin requerir matemáticas avanzadas, solo熟悉 con la idea de introspección y su prohibición.