
La creatividad es uno de esos talentos imprescindibles en todo buen programador, la labor no trivial de
comprender, concebir, modelar, implementar y mantener un aplicativo software

batallando con la
complejidad inherente a su creación y el dinamismo de sus requerimientos requiere de altas dosis de versatilidad mental para ejecutarse con éxito. Estas capacidades se ven reflejadas comúnmente en manifestaciones hilarantes, lúdicas o estrambóticas que los informáticos suelen crear para resaltar alguno de los factores productivos del software, o simplemente para divertirse un poco.
He aquí algunos ejemplos interesantes:
Un concurso que hace mofa de la complejidad premiando al héroe capaz de concebir el código fuente más incomprensible posible.
Algunos fuentes interesantes:
Un simulador de vuelo#include <math.h>
#include <sys/time.h>
#include <X11/Xlib.h>
#include <X11/keysym.h>
double L ,o ,P
,_=dt,T,Z,D=1,d,
s[999],E,h= 8,I,
J,K,w[999],M,m,O
,n[999],j=33e-3,i=
1E3,r,t, u,v ,W,S=
74.5,l=221,X=7.26,
a,B,A=32.2,c, F,H;
int N,q, C, y,p,U;
Window z; char f[52]
; GC k; main(){ Display*e=
XOpenDisplay( 0); z=RootWindow(e,0); for (XSetForeground(e,k=XCreateGC (e,z,0,0),BlackPixel(e,0))
; scanf("%lf%lf%lf",y +n,w+y, y+s)+1; y ++); XSelectInput(e,z= XCreateSimpleWindow(e,z,0,0,400,400,
0,0,WhitePixel(e,0) ),KeyPressMask); for(XMapWindow(e,z); ; T=sin(O)){ struct timeval G={ 0,dt*1e6}
; K= cos(j); N=1e4; M+= H*_; Z=D*K; F+=_*P; r=E*K; W=cos( O); m=K*W; H=K*T; O+=D*_*F/ K+d/K*E*_; B=
sin(j); a=B*T*D-E*W; XClearWindow(e,z); t=T*E+ D*B*W; j+=d*_*D-_*F*E; P=W*E*B-T*D; for (o+=(I=D*W+E
*T*B,E*d/K *B+v+B/K*F*D)*_; p<y; ){ T=p[s]+i; E=c-p[w]; D=n[p]-L; K=D*m-B*T-H*E; if(p [n]+w[ p]+p[s
]== 0|K <fabs(W=T*r-I*E +D*P) |fabs(D=t *D+Z *T-a *E)> K)N=1e4; else{ q=W/K *4E2+2e2; C= 2E2+4e2/ K
*D; N-1E4&& XDrawLine(e ,z,k,N ,U,q,C); N=q; U=C; } ++p; } L+=_* (X*t +P*M+m*l); T=X*X+ l*l+M *M;
XDrawString(e,z,k ,20,380,f,17); D=v/l*15; i+=(B *l-M*r -X*Z)*_; for(; XPending(e); u *=CS!=N){
XEvent z; XNextEvent(e ,&z);
++*((N=XLookupKeysym
(&z.xkey,0))-IT?
N-LT? UP-N?& E:&
J:& u: &h); --*(
DN -N? N-DT ?N==
RT?&u: & W:&h:&J
); } m=15*F/l;
c+=(I=M/ l,l*H
+I*M+a*X)*_; H
=A*r+v*X-F*l+(
E=.1+X*4.9/l,t
=T*m/32-I*T/24
)/S; K=F*M+(
h* 1e4/l-(T+
E*5*T*E)/3e2
)/S-X*d-B*A;
a=2.63 /l*d;
X+=( d*l-T/S
*(.19*E +a
*.64+J/1e3
)-M* v +A*
Z)*_; l +=
K *_; W=d;
sprintf(f,
"%5d %3d"
"%7d",p =l
/1.7,(C=9E3+
O*57.3)%0550,(int)i); d+=T*(.45-14/l*
X-a*130-J* .14)*_/125e2+F*_*v; P=(T*(47
*I-m* 52+E*94 *D-t*.38+u*.21*E) /1e2+W*
179*v)/2312; select(p=0,0,0,0,&G); v-=(
W*F-T*(.63*m-I*.086+m*E*19-D*25-.11*u
)/107e2)*_; D=cos(o); E=sin(o); } }
Un hola mundo muy particular
main(v,c)char**c;{for(v[c++]="Hello, world!\n)";(!!c)[*c]&&(v--||--c&&execlp(*c,*c,c[!!c]+!!c,!c));**c=!c)write(!!*c,*c,!!**c);}
Un interprete de BASIC (si, un lenguaje de programación completico !)#define O(b,f,u,s,c,a)b(){int o=f();switch(*p++){X u:_ o s b();X c:_ o a b();default:p--;_ o;}}
#define t(e,d,_,C)X e:f=fopen(B+d,_);C;fclose(f)
#define U(y,z)while(p=Q(s,y))*p++=z,*p=' '
#define N for(i=0;i<11*R;i++)m[i]&&
#define I "%d %s\n",i,m[i]
#define X ;break;case
#define _ return
#define R 999
typedef char*A;int*C,E[R],L[R],M[R],P[R],l,i,j;char B[R],F[2];A m[12*R],malloc
(),p,q,x,y,z,s,d,f,fopen();A Q(s,o)A s,o;{for(x=s;*x;x++){for(y=x,z=o;*z&&*y==
*z;y++)z++;if(z>o&&!*z)_ x;}_ 0;}main(){m[11*R]="E";while(puts("Ok"),gets(B)
)switch(*B){X'R':C=E;l=1;for(i=0;i<R;P[i++]=0);while(l){while(!(s=m[l]))l++;if
(!Q(s,"\"")){U("<>",'#');U("<=",'$');U(">=",'!');}d=B;while(*F=*s){*s=='"'&&j
++;if(j&1||!Q(" \t",F))*d++=*s;s++;}*d--=j=0;if(B[1]!='=')switch(*B){X'E':l=-1
X'R':B[2]!='M'&&(l=*--C)X'I':B[1]=='N'?gets(p=B),P[*d]=S()
*(q=Q(B,"TH"))=0,p
=B+2,S()&&(p=q+4,l=S()-1))X'P':B[5]=='"'?*d=0,puts(B+6)
p=B+5,printf("%d\n",S
()))X'G':p=B+4,B[2]=='S'&&(*C++=l,p++),l=S()-1 X'F':*(q=Q(B,"TO"))=0;p=B+5;P[i
=B[3]]=S();p=q+2;M[i]=S();L[i]=l X'N':++P[*d]<=M[*d]&&(l=L[*d]);}else p=B+2,P[
*B]=S();l++;}X'L':N printf(I)X'N':N free(m[i]),m[i]=0 X'B':_ 0 t('S',5,"w",N
fprintf(f,I))t('O',4,"r",while(fgets(B,R,f))(*Q(B,"\n")=0,G()))X 0:default:G()
;}_ 0;}G(){l=atoi(B);m[l]&&free(m[l]);(p=Q(B," "))?strcpy(m[l]=malloc(strlen(p
)),p+1)
m[l]=0,0);}O(S,J,'=',==,'#',!=)O(J,K,'<',<,'>',>)O(K,V,'$',<=,'!',>=)
O(V,W,'+',+,'-',-)O(W,Y,'*',*,'/',/)Y(){int o;_*p=='-'?p++,-Y():*p>='0'&&*p<=
'9'?strtol(p,&p,0):*p=='('?p++,o=S(),p++,o:P[*p++];}
Muchos otros ejemplos
LOS QUINE (lease "kwain") Unn tipo de aplicaciones auto-referentes que tienen como objetivo imprimir su propio código fuente.
Algunos ejempos:
Cmain(){char*a="main(){char*a=%c%s%c;printf(a,34,a,34);}";printf(a,34,a,34);}
BASIC10 LIST
PASCAL
const a='const a=';b='begin write(a,#39,a,#39#59#98#61#39,b,#39#59#10,b) end.';
begin write(a,#39,a,#39#59#98#61#39,b,#39#59#10,b) end.
Un tutorial de construcción de quines muy interesante
Un conjunto de lenguajes de programación totalmente improductivos que garantizan la exasperación total con solo tratar de codificar un hola mundo.
Ejemplos:
- Whitespace: Un lenguaje donde todas las instrucciones se basan en espacios en blanco, tabuladores, o saltos de linea.
Hola mundo en whitespace:
Otros ejemplos para NO ver- Brainfuck: Un lenguaje con solo 8 posibles instrucciones: ><+-.,[]
Hola mundo en Brainfuck:>+++++++++[<++++++++>-]<.>+++++++[<++++>-]<+.+++++++..+++.>>>++++++++[<++++>-]
<.>>>++++++++++[<+++++++++>-]<---.<<<<.+++.------.--------.>>+.
Un lenguaje que se basa en imágenes que semejan arte abstracto.
Hola mundo en Piet:
Un conjunto de aplicaciones software con capacidades de autorreplicación, supervivencia, ocultamiento, polimorfismo, técnicas de sigilo y multitud de ardides de programación que solo se pueden apreciar en este tipo tan particular de aplicaciones.
Un ejemplo sencillo y antiguo en ensamblador:
;NAME: TINY-133 SOURCE
;
;.MODEL TINY
;.CODE
CODE SEGMENT BYTE PUBLIC 'CODE'
ASSUME CS:CODE,DS:CODE,ES:NOTHING,SS:NOTHING
P00100 PROC
ORG 0100h
H00100:
DEC BP ;00100 4D M
; JMP SHORT H00107 ;00101 E90400 ___
DB 0E9H, 04h
DB 000H
;---------------------------------------------------
INT 20h ;B-TERM_norm:20h ;00104 CD20 _
;---------------------------------------------------
H00106: NOP ;00106 90 _
H00107: NOP ;00107 90 _
H00108: MOV SI,0100h ;00108 BE0001 ___
MOV BX,062Fh ;0010B BB2F06 _/_
MOV CX,0050h ;0010E B95000 _P_
MOV DI,SI ;00111 8BFE __
ADD SI,[SI+02h] ;00113 037402 _t_
PUSH DI ;00116 57 W
MOVSW ;00117 A5 _
MOVSW ;00118 A5 _
MOV ES,CX ;ES_Chg ;00119 8EC1 __
CMPSB ;0011B A6 _
JZ H00130 ;0011C 7412 t_
DEC SI ;0011E 4E N
DEC DI ;0011F 4F O
REPZ MOVSW ;00120 F3A5 __
MOV ES,CX ;ES_Chg ;00122 8EC1 __
XCHG AX,BX ;00124 93 _
XCHG AX,CX ;00125 91 _
H00126: XCHG AX,CX ;00126 91 _
XCHG AX,ES:[DI+0FEE0h]
;ES_Ovrd ;00127 268785E0FE &____
STOSW ;0012C AB _
JCXZ H00126 ;0012D E3F7 __
XCHG AX,BX ;0012F 93 _
H00130: PUSH DS ;00130 1E _
POP ES ;00131 07 _
RET ;RET_Near ;00132 C3 _
;---------------------------------------------------
CMP AX,4B00h ;00133 3D004B =_K
JNZ H00174 ;00136 753C u<
PUSH AX ;00138 50 P
PUSH BX ;00139 53 S
PUSH DX ;0013A 52 R
PUSH DS ;0013B 1E _
PUSH ES ;0013C 06 _
MOV AX,3D02h ;0013D B8023D __=
CALL H0017C ; . . . . . . . . . ;00140 E83900 _9_
JB H0016F ;00143 722A r*
CBW ;00145 98 _
CWD ;00146 99 _
MOV BX,SI ;00147 8BDE __
MOV DS,AX ;DS_Chg ;00149 8ED8 __
MOV ES,AX ;ES_Chg ;0014B 8EC0 __
MOV AH,3Fh ;0014D B43F _?
INT 69h ;Indef_INT:69h-3Fh ;0014F CD69 _i
MOV AL,4Dh ;00151 B04D _M
SCASB ;00153 AE _
JZ H0016B ;00154 7415 t_
MOV AL,02h ;00156 B002 __
CALL H00179 ; . . . . . . . . . ;00158 E81E00 ___
MOV CL,85h ;0015B B185 __
INT 69h ;Indef_INT:69h-3Fh ;0015D CD69 _i
MOV AX,0E94Dh ;0015F B84DE9 _M_
STOSW ;00162 AB _
XCHG AX,SI ;00163 96 _
STOSW ;00164 AB _
XCHG AX,DX ;00165 92 _
CALL H00179 ; . . . . . . . . . ;00166 E81000 ___
INT 69h ;Indef_INT:69h-AH ;00169 CD69 _i
H0016B: MOV AH,3Eh ;0016B B43E _>
INT 69h ;Indef_INT:69h-3Eh ;0016D CD69 _i
H0016F: POP ES ;0016F 07 _
POP DS ;00170 1F _
POP DX ;00171 5A Z
POP BX ;00172 5B [
POP AX ;00173 58 X
H00174:
; JMP CS:[01A4h]
DB 2EH, 0FFh, 2Eh, 0A4h, 01H
;Mem_Brch:CS:[01A4h];00174 2EFF2EA401 ._.__
;---------------------------------------------------
H00179: MOV AH,42h ;00179 B442 _B
CWD ;0017B 99 _
H0017C: XOR CX,CX ;0017C 33C9 3_
INT 69h ;Indef_INT:69h-00h ;0017E CD69 _i
MOV CL,04h ;00180 B104 __
XCHG AX,SI ;00182 96 _
MOV AX,4060h ;00183 B86040 _`@
XOR DI,DI ;00186 33FF 3_
RET ;RET_Near ;00188 C3 _
;---------------------------------------------------
P00100 ENDP
CODE ENDS
END H00100
Una base completa de código fuente vírico.
Y tu que otros ejemplos conoces?