La curiosa historia del archivo .zip que se contenía a sí mismo y era infinitamente grande

En esta historia de 2010, titulada Zip Files All The Way Down (Vía The infinitely large .zip file) Russ Cox de los Bell Labs cuenta cómo indagar sobre el curioso problema de si es posible crear un fichero .zip que se contenga a sí mismo, de modo que al descomprimirse se genere otro archivo .zip exactamente igual y que por tango contenga otro archivo .zip que… Bueno, es fácil decirlo, pero no es tan fácil explicarlo.

applied_geometry

El trabajo es muy interesante porque habla de los programas que autorreproducen, emplea diferentes lenguajes de ejemplo y toca muchos otros temas. De este mismo estilo son los quines, que describió Ken Thompson en una de sus charlas: programas en un lenguaje concreto que se imprimen a sí mismo al ejecutarlos. (En el lenguajeHQ8+ ese programa es simplemente Q; en Basic sería 10 LIST).

El caso es que se puede crear un .zip/gzip de este estilo, aunque dista de ser trivial. De hecho es un buen ejercicio intentar encontrar el código exacto sin mirar la solución – y hay muchos detalles sobre cómo funciona la compresión Lempel-Ziv de los .zip. El resultado es una especie de .zip bomba que de expandirse una y otra vez llegaría… hasta el infinito. Por suerte los programas descompresores son más listos que eso y no caen en la trampa intentando abrirlos de forma recursiva más de un nivel (al menos la mayoría así lo hacen).

Anuncios

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s