Send to Kindle

Esta es una de las entradas del concurso IOCCC o International Obfuscated C Code Contest, un concurso algo absurdo y que busca seleccionar al programa en C más revuelto que hayas visto; velo como una forma retorcida de recordarles a todos lo importante que son las buenas prácticas de programación. Muchos de los programas que envían juegan con la identación del código, cambiando variables, abusan del preprocesador, y mil perversiones más. Este es un ejemplo de lo que envían al IOCCC:

1
2
3
#include
int O,o,i;char*I="";main(l){O&=l&1?*I:~*I,*I++||(l=2*getchar(),i+=O>8
?o:O?0:o+1,o=O>9,O=-1,I="t8B~pq`",l>0)?main(l/2):printf("%d\n",--i);}

Si, eso que ves arriba es un programa de C que funciona. Y por cierto, uno de los casi entendibles.

Pero también hay algunos muy artísticos, como por ejemplo esta poesía escrita en C:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
char*lie;
 
	double time, me= !0XFACE,
 
	not; int rested,   get, out;
 
	main(ly, die) char ly, **die ;{
 
	    signed char lotte,
 
dear; (char)lotte--;
 
	for(get= !me;; not){
 
	1 -  out & out ;lie;{
 
	char lotte, my= dear,
 
	**let= !!me *!not+ ++die;
 
	    (char*)(lie=
 
"The gloves are OFF this time, I detest you, snot\n\0sed GEEK!");
 
	do {not= *lie++ & 0xF00L* !me;
 
	#define love (char*)lie -
 
	love 1s *!(not= atoi(let
 
	[get -me?
 
	    (char)lotte-
 
(char)lotte: my- *love -
 
	'I'  -  *love -  'U' -
 
	'I'  -  (long)  - 4 - 'U' ])- !!
 
	(time  =out=  'a'));} while( my - dear
 
	&& 'I'-1l  -get-  'a'); break;}}
 
	    (char)*lie++;
 
(char)*lie++, (char)*lie++; hell:0, (char)*lie;
 
	get *out* (short)ly   -0-'R'-  get- 'a'^rested;
 
	do {auto*eroticism,
 
	that; puts(*( out
 
	    - 'c'
 
-('P'-'S') +die+ -2 ));}while(!"you're at it");
 
for (*((char*)&lotte)^=
 
	(char)lotte; (love ly) [(char)++lotte+
 
	!!0xBABE];){ if ('I' -lie[ 2 +(char)lotte]){ 'I'-1l ***die; }
 
	else{ if ('I' * get *out* ('I'-1l **die[ 2 ])) *((char*)&lotte) -=
 
	'4' - ('I'-1l); not; for(get=!
 
get; !out; (char)*lie  &  0xD0- !not) return!!
 
	(char)lotte;}
 
(char)lotte;
 
	do{ not* putchar(lie [out
 
	*!not* !!me +(char)lotte]);
 
	not; for(;!'a';);}while(
 
	    love (char*)lie);{
 
register this; switch( (char)lie
 
	[(char)lotte] -1s *!out) {
 
	char*les, get= 0xFF, my; case' ':
 
	*((char*)&lotte) += 15; !not +(char)*lie*'s';
 
	this +1s+ not; default: 0xF +(char*)lie;}}}
 
	get - !out;
 
	if (not--)
 
	goto hell;
 
	    exit( (char)lotte);}

¿Quién dijo que el código no es arte? :P

Fuente: westley.c (IOCCC 1999)

Send to Kindle
Tagged with:
 

One Response to Poesía en C

  1. DaHouseCat dice:

    A eso es a lo que llamo “Estate of art”

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos necesarios están marcados *

Puedes usar las siguientes etiquetas y atributos HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>