IOCCC: 1984 — 1996

Собрал и запустил для вас лучшие проекты победителей The International Obfuscated C Code Contest, за первое десятилетие этого замечательного конкурса.

Старая добрая
Старая добрая «змейка», справа исходный код. Проект 2020 го года — прозрачный намек на продолжение, дальше очень много интересного.

IOCCC

The International Obfuscated C Code Contest (IOCCC)‑ соревнование по обфускации кода на языке С, это старейший конкурс на планете, позволяющий померяться уровнем в программировании и регулярно привлекающий звезд индустрии.

Конкурс проводится с 1984 года, практически каждый год, с большим перерывом в 2006–2011.

Последний раз он проводился в пандемийный 2020й, так что видимо у нас опять задержка с выходом.

Каждый раз объявляются специальные правила проведения, ограничивающие полет фантазии авторов.

Вот так для примера выглядели правила 1984 го года:

Now you have the chance to compete with the worst C hackers around
by sending in your own obfuscated C program.  Just follow the contest
rules below:
		1) the source file must be no more than 512 bytes long

		2) mail your source to:    hplabs!nsc!chongo
		   no later than April 11, 1984.  entries posted to
		   the net will NOT be accepted.  please give your
		   letter the subject of: obfuscated C code contest.

		3) winning entries will be posted to net.lang.c after
		   April 12, 1894.  (thats the prize folks)

		4) indicate your net address in the text of your
		   entry, this will be used to give credit unless
		   you indicate that you want to remain anonymous.

		5) entries must be of original work.  (dont send anything
		   that might upset Big Brother Bell)  all entries are
		   public domain.  (who would want to own them anyway?!)

Entries will be judged for: violations of structured programming, non-clarity,
and use of "by the K&R book" C. (use of local mods to C are not encouraged)
extra credit if they can be compiled using the 4.2BSD C compiler on our VAX 780,
but dont let the lack of a 780 or 4.2 discourage you!

chongo  /\CC/\

Как видите, тут сразу был оглашен лимит в 512 байт на размер исходного кода, а также одно неожиданное правило:

Entries will be judged for: violations of structured programming, non-clarity,
and use of «by the K&R book» C.

Для этой статьи я отобрал несколько работ победителей этого конкурса с 1984 под 1996 годы, но стоит сразу указать, что далеко не все из интересного удалось собрать или адаптировать под современные ОС, некоторые из собранных проектов падали при запуске или в процессе работы.

Поэтому ниже представлены только те работы, которые точно собираются и запускаются на начало 2025 года.

Еще некоторые авторы побеждали в IOCCC неоднократно и даже с несколькими разными проектами, в таких случаях я брал лишь одну работу победителя.

Тестовое окружение:

FreeBSD 14.2, gcc13 и/или clang

В некоторых случаях специально отключались обязательные для современного окружения проверки компилятора на ошибки и убирались устаревшие вызовы вроде gets.

Anonymous, 1984

Как известно, любое программирование начинается с самого простого «Hello, world!», не стала исключением и данная олимпиада для особенных программистов:

int i;main(){for(;i["]

В 2005 м году код-победитель от анонимного участника был вытатуирован на руке фаната, видимо чтобы машины когда придут к власти приняли за своего:

image of a tattoo of the 1984 anonymous C code

Shapiro, 1985

Автор: Carl Shapiro

Две строки описания:

Grand prize for most well-rounded in confusion

и:

This program was selected for the 1987 t-shirt collection.

наводят на мысль, что перед нами нечто действительно необычное. Ожидания полностью оправдываются, стоит лишь взглянуть на исходный код:

#define P(X)j=write(1,X,1)
#define C 39
int M[5000]={2},*u=M,N[5000],R=22,a[4],l[]={0,-1,C-1,-1},m[]={1,-C,-1,C},*b=N,
*d=N,c,e,f,g,i,j,k,s;main(){for(M[i=C*R-1]=24;f|d>=b;){c=M[g=i];i=e;for(s=f=0;
s<4;s++)if((k=m[s]+g)>=0&&k=16!=M[k]>=16))a[f++
]=s;if(f){f=M[e=m[s=a[rand()/(1+2147483647/f)]]+g];j=jb++?b[-1]:e;}P(" ");for(s=C;--s;P("_")
)P(" ");for(;P("\n"),R--;P("|"))for(e=C;e--;P("_ "+(*u++/8)%2))P("| "+(*u/4)%2
);}

508 байт и 3 строки (в оригинале) выдают после компиляции вот такую красоту:

93b150510e74aed37ec57ab43cf3fec6.png

Applin, 1986

Автор: Jack Applin

Как вам классический «Hello world», который одновременно компилируется как код на Си и Фортране и заодно является шелл-скриптом?

Судьи тоже были удивлены:

The judges were so amused by this little program that we created an award just for it.

Теперь сам код (напоминаю что это 1986 год):

cat =13 /*/ >/dev/null 2>&1; echo "Hello, world!"; exit
*
*  This program works under cc, f77, and /bin/sh.
*
*/; main() {
      write(
cat-~-cat
     /*,'(
*/
     ,"Hello, world!"
     ,
cat); putchar(~-~-~-cat); } /*
     ,)')
      end
*/

Несмотря на столь почтенный возраст, все три варианта использования до сих пор работают в современной ОС:

e2cfbfb963126ac2270d78b7d183021f.png

Хотя автору и пришлось устанавливать компилятор Фортрана на FreeBSD чтобы это показать.

Pawka, 1986

Автор: Michael H. Pawka

Мнение судей:

The judges found this entry to be one of hardest to read without the aid of /lib/cpp and a good editor. When run, the program asks if it is obfuscated, of all things!

Код, который желает вам удачного дня недели года в попытках это прочитать:

#include "stdio.h"
#define xyxx char
#define xyyxx putchar
#define xyyyxx while
#define xxyyyx int
#define xxxyyx main
#define xyxyxy if
#define xyyxyy '\n'
xyxx *xyx [] = {
"]I^x[I]k\\I^o[IZ~\\IZ~[I^|[I^l[I^j[I^}[I^n[I]m\\I]h",
"]IZx\\IZx[IZk\\IZk[IZo_IZ~\\IZ~[IZ|_IZl_IZj\\IZj]IZ}]IZn_IZm\\IZm_IZh",
"]IZx\\IZx[I^k[I\\o]IZ~\\IZ~\\I]|[IZl_I^j]IZ}]I^n[IZm\\IZm_IZh",
"]IZx\\IZx[IZk\\IZk[IZo_IZ~\\IZ~_IZ|[IZl_IZj\\IZj]IZ}]IZn_IZm\\IZm]IZh",
"]I^x[I]k\\IZo_I^~[I^|[I^l[IZj\\IZj]IZ}]I^n[I]m^IZh",'\0'};/*xyyxyxyxxxyxxxyy*/
xyxx *xyyx; xxyyyx xyyyx,xyyyyx,xyyyyyx=0x59,xyyyyyyx=0x29,/*yxxyxyyyxxyyyxyy*/
xxyx=0x68;xxxyyx(){xyyyyx=0;xyyyxx(xyx[xyyyyx]){xyyx=xyx[xyyyyx++];/*xyyyxxyx*/
xyyyxx(*xyyx){xyyyx= *xyyx++-xyyyyyx;xyyyxx(xyyyx--)xyyxx(*xyyx-xyyyyyyx);/*x*/
xyxyxy(*xyyx==xxyx)xyyxx(xyyxyy);*xyyx++;}}}/*xyxyxyyyyxxyxxxyyyxyyyxyxxyyy*/

Результат работы:

fb7a1a399dc7f25eb3253090955f4d6d.png

Korn, 1987

Автор:

David Korn
AT&T Bell Labs
MH 3C-526B, AT&T Bell Labs
Murray Hill, NJ
07974
USA

Тот самый Korn, автор Korn Shell.

Мнение судей:

The Judges believe that this is the best one line entry ever received. Compile on a UN*X system, or at least using a C implementation that fakes it. Very few people are able to determine what this program does by visual inspection. I suggest that you stop reading this section right now and see if you are one of the few people who can.

Думаю судьи не ошиблись, потому что даже на 2025 год не знаю, кто сможет с ходу разобраться в таком коде:

main() { printf(&unix["\021%six\012\0"],(unix)["have"]+"fun"-0x60);}

Что характерно код полностью рабочий, все собирается и запускается до сих пор:

4e8266f23342dfb798b747d366d0508b.png

Westley, 1988

Автор: Merlyn LeRoy (Brian Westley)

Краткая аннотация от судей:

Best layout

несколько не передает всю гамму чувств при просмотре кода:

#define _ -F<00||--F-OO--;
int F=00,OO=00;main(){F_OO();printf("%1.3f\n",4.*-F/OO/OO);}F_OO()
{
            _-_-_-_
       _-_-_-_-_-_-_-_-_
    _-_-_-_-_-_-_-_-_-_-_-_
  _-_-_-_-_-_-_-_-_-_-_-_-_-_
 _-_-_-_-_-_-_-_-_-_-_-_-_-_-_
 _-_-_-_-_-_-_-_-_-_-_-_-_-_-_
_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
 _-_-_-_-_-_-_-_-_-_-_-_-_-_-_
 _-_-_-_-_-_-_-_-_-_-_-_-_-_-_
  _-_-_-_-_-_-_-_-_-_-_-_-_-_
    _-_-_-_-_-_-_-_-_-_-_-_
        _-_-_-_-_-_-_-_
            _-_-_-_
}

Код разумеется рабочий и спокойно собирается современными GCC и Clang:

clang westley.c -o westley
gcc13 westley.c -o westley

Вывод:

4080a75cfecda9049ae38ff86dde7e62.png

vanb, 1989

Автор: David Van Brackle
Опять же столь сухая оценка судей:

Best one liner

не передает всю степень крутизны автора, сотворившего столь замечательный код (крутите влево, все целиком не влезло):

main(Q,O)char**O;{if(--Q){main(Q,O);O[Q][0]^=0X80;for(O[0][0]=0;O[++O[0][0]]!=0;)if(O[O[0][0]][0]>0)puts(O[O[0][0]]);puts("----------");main(Q,O);}}

Вот так выглядит результат работы:

fbcef37c01f000a9b178759b52891a3a.png

Вот что оно делает:

This program computes all proper subsets of the set of arguments passed to it. Each subset is printed with one element on each line, followed by a line of ten dashes.

PJR, 1990

Автор: Peter J Ruczynski.

Мнение судей:

Most Unusual Data Structure

будет слегка непонятным, без просмотра исходного кода:

#include 
#define A(a) G a();
#define B(a) G (*a)();
#define C(a,b) G a() { printf(b); return X; }
typedef struct F G;A(a)A(b)A(c)A(d)A(e)A(f)A(g)A(h)A(i)A(j)A(k)A(l)A(m)A(n)A(
o)A(p)A(q)A(r)A(s)A(t)A(u)A(v)A(w)A(x)A(y)A(z)A(S)A(N)void Q();struct F{B(a)B
(b)B(c)B(d)B(e)B(f)B(g)B(h)B(i)B(j)B(k)B(l)B(m)B(n)B(o)B(p)B(q)B(r)B(s)B(t)B(
u)B(v)B(w)B(x)B(y)B(z)B(S)B(N)void(*Q)();}X={a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,
q,r,s,t,u,v,w,x,y,z,S,N,Q};C(a,"z")C(b,"y")C(c,"x")C(d,"w")C(e,"v")C(f,"u")C(
g,"t")C(h,"s")C(i,"r")C(j,"q")C(k,"p")C(l,"o")C(m,"n")C(n,"m")C(o,"l")C(p,"k"
)C(q,"j")C(r,"i")C(s,"h")C(t,"g")C(u,"f")C(v,"e")C(w,"d")C(x,"c")C(y,"b")C(z,
"a")C(S," ")C(N,"\n") void Q(){}main(){X=g().s().v().S().j().f().r().x().p().
S().y().i().l().d().m().S().u().l().c().S().q().f().n().k().v().w().S().l().e
().v().i().S().g().s().v().S().o().z().a().b().S().w().l().t().N();}

Вот так это выглядит в работе:

f3c36e38ace672a79a9eb8a6d962870a.png

Да, все что делает это чудо — вывод знаменитой тестовой строчки для проверки шрифтов, но по особенному:

By use of pointers to functions returning a struct of pointers to functions!

Buzzard, 1991

Автор: Sean Barrett

Приз за лучший вывод:

Best Output

получен не просто так, поскольку внутри столь небольшого кода скрывается. настоящий 3D-движок:

#include 
#define X(s) (!(s&3)-((s&3)==2))
#define W while
char Z[82][82],A,B,f,g=26;z(q){return atoi(q);}m(d,l){return
Z[   B       +    X      (   f     +
3) * d+l *X(f+ 2 )][ A+X ( f ) * d +
l* X           (     f     + 3 ) ] ;}int
h= 0;D(p,s)char*s; {W(h>>3

> 3 ) {putchar('\t' ); h = ( h +8 )&~7 ;}W(h < p ){putchar(' ');++h; }(void)printf( "%s" , s ) ;h+=strlen(s);}main(x,a)char **a; { # define P(x) (x?(5-(x))*(6-(x ))/2:11) int b; { char b[256],i, j=0; FILE*F;F=fopen(x-1?a[1]:"buzzard.c","r");W( fgets( b ,256 ,F)){for(i=0;b[ i];++ i) Z[j][i ] =( b [ i ] ==' '?1:2*(b[i]==(x>2?*a[2]:'\\')));++j;}fclose (F);}A =4 ; B = 3 ; f = 1;x >3? A=z(a[3]),B=z(a[4]):0;b='\n';do{if(b=='\n' ){int y , s , d , p , q ,i;for (y=-11; y<= 11;++ y){ for(s = 1 ,d=0;s+3;s-=2){for (;d!=2 + 3 * s ; d+=s){ if(m(d,0) !=1 ){p=P (d) ;if (abs( y ) p)break;for (i =-p;iq)continue;if (abs(y) 0)?"\\":"/");}d-=s;}puts( "");h=0;}}f+=(b=='r')-(b=='l');f&=3;if(b=='f'){if(!m(1,0))continue; A+=X(f);B+=X(f-1);}}W((b=getchar())!=-1&&m(0,0)==1);return 0;}

Вот так это выглядит в работе:

Самый старт
Самый старт
Шаг вперед
Шаг вперед
Разворот и взгляд назад.
Разворот и взгляд назад.

IMC, 1992

Автор:

Ian Collier
Oxford University
The Queen’s College
High Street
OXFORD
OX1 4AW
ENGLAND

Приз:

Best Output

был выдан этому шедевру более чем заслуженно, но для начала код:

#include		      
#include		      
#define			  ext(a) (exit(a),0)
#define I		  " .:\';+++q&&L(v[q],O,&B)!=1&&--q
#define F(U,S,C,A) t=0,*++J&&(t=L(J,U,&C,&A)),(!t&&c>++q&&!(t=L(v[q],U,\
		   &C,&A)))?--q:(t<2&&c>++q&&!(t=L(v[q],S,&A))&&--q
#define T(E)		(s("%d",E),E||(fputs(n,i),r))
#define d(C,c)		  (F("%lg,%lg","%lg",C,c)))
#define O	   (F("%d,%d","%d",N,U),(N&&U)||(fputs(n,i),r)))
#define D		      (s("%lg",f))
#define E			  putc
					       C
						G=0,
						R
					     =0,Q,H
					    ,M,P,z,S
					     =0,x=0
				 ,        f=0;l b,j=0,	      k
				  =128,K=1,V,B=0,Y,m=128,p=0,N
				 =768,U=768,h[]={0x59A66A95,256
			     ,192,1,6912,1,0,0},t,A=0,W=0,Z=63,X=23
			    ;o*J,_;main(c,v)l c;o**v;{l q=1;for(;;q<
		  c	   ?(((J=v[q])[0]&&J[0]<48&&J++,((_= *J)<99||
		_/2==	   '2'||(_-1)/3=='\"'||_==107||_/05*2==','||_
	      >0x074)?(   fprintf(i,a,v[q]),r):_>0152?(_/4>27?(_&1?(
	     O,Z=N,X=U):  (W++,N=Z,U=X)):_&1?T(K):T(k)):_>103?(d(G,
	R    ),j=1):_&1? d(S,x):D,q++),q--,main(c-q,v+q)):A==0?(A=
  1,f||(f=N/4.),b=(((N-1)&017)<8),q=(((N+7)>>3)+b)*U,(J=malloc(q)
  )||(perror("malloc"),r),S-=(N/2)/f,x+=(U/2)/f):A==1?(B>=1)||/*/
				  (m=128,u--),A==6?ext(1):B

Да, оно компилируется до сих пор, свежей версией gcc (!)

Описание:

This is a Mandelbrot/Julia drawer. Normally it produces a monochrome Sun-format raster file.

К сожалению мне не удалось отобразить данный формат в современном окружении, поэтому использовался параметр -text для генерации ANSII варианта.

Результат работы:

577589fdd5fd31ec6550c42430825778.png

schnitzi, 1993

Автор: Mark Schnitzius

Мнение судей:

Obfuscated Intelligence Award

в сочетании с таким кодом:

#include      
#define            iii\
(                     I  )                    if (                     ii(I,6\
 )                   )I [               strlen(I  )                     -1]=!1
          int ii(ll,lll  )              char*ll; {

  char *l="\"; !l ? 1.1 : l; l,printf(";int l1=1-/*+&|");  &+|-*/1,li=!1;while

(                lll>l1  )                 li|=! (                  l[3*l1+++3
 ]           -ll[strlen (                 ll)-1]  )                    ;return
(                    li  )                ;}main (                      ll,lll
 )  char*lll[];{char l1 [   111][21],li1[111][21  ]              ,il1[111],i1l
[                   111  ] ;int lli,l11,l1l,li/* (  */,ll1,il,l;FILE*f;if(ll-2
 )             {f=fopen (             lll[1],"r"  )     ;lli=l=ll1=il=!1;while
( fscanf(f,"%s",l1[lli]  )             +1){li=ii (                   l1[lli],3
 )                 ;iii (                l1[lli]  )          ;l1l=l11=!1;while
(               l1l>-ll  )                  {iii (                   lll[-l1l]
 )          ;strcasecmp (    lll[-l1l--],l1[lli]  )                         ||
(              l11=++il  )       ;}l11||lli++;if (                          li
 )                  {if (                 ll1l1l
 )               printf (       " %s",li1[l1l++]  )                      ;puts
(                   "."  )       ;}}else{sprintf (    il1,"cat %s;echo",lll[1]
 )              ;system (                    il1  )                   ;}printf
(                "\n? "  )                 ;fgets (                         il1, sizeof(il1),stdin
 )             ;sprintf (  i1l,"%s %s %s",lll[!1  ]        ,lll[1],il1);system
(                 i1l);  }

ставят под сомнение ваши знания об искусственном интеллекте.

Вот так это выглядит в работе:

75265e89b4bdae1089e3c7ecd18a81de.png

Тестовые данные:

This program answers questions about paragraphs
of text posed to it in English.  It is written
in C.  Mark Schnitzius is the author of this
program.

The Loch Ness monster has been captured.  Elvis
is alive.  Hostler was a woman.  The NASA moon
landings were clearly faked.

А вы говорите ChatGPT.

Из аннотации автора:

I wanted to write a program that would read in a text file in natural language (such as English) and answer questions about that text file. I thought this might be a complicated task, and I was right — it took me over 800 bytes. Of course, it doesn’t always work, but that’s AI for you.

Horton, 1994

Автор:

Mark Horton
AT&T Bell Labs
Rm 1H-117

Вердикт судей:

Best Utility

в какой-то мере правдивый, если вам надо рисовать графики в консоли с помощью ANSII-символов.

Код к сожалению с немного поехавшим форматированием, оригинал можно увидеть тут:

##define S(r, c) f[r][c] = 1;

char f[96][160]; main(argc, argv) char **argv; { double x, y, atof(); int
r									,
c									,
bi									,
bj									,
i			       ; for (i=10; i<=80			;
i			    ++) { S(i, 18); S(i, 152)			;
}		for (i=18; i<=152; i++) { S(10, i); S(80, i)		;
}	    for (x=-20;				   x<=10; x += .05)	{
y							=atof(argv[1])  *
x						   * x * x + atof(argv	[
2						])*x*x+atof(argv[3])	*
x					 + atof(argv[4])		;
r				 = (500 - y)*.07+10			;
c					 =(x+20)*4.33333		+
20						; if(r>=10 && r<=80 &&	c
>=							  20 && c<=150)	S
(							   r, c); } for (
r							=0; r < 24; r  ++
)	    for (c=0; c				     <80; c++) { bi	=
4		*r;bj=2*c;			 i=(((f[bi][bj]<<	3
)		     +(f[bi+1][bj]<<2)+(f[bi+2][bj]<<1)+(f[bi		+
3			][bj]<<0))*16+ (f[bi][bj+1]<<3)+(		f
[			    bi+1][bj+1]<<2)+(f[bi+2][bj			+
1				]<<1)+(f[bi+3][bj+			1
]				  <<0)+1)*(c<79				)
;					putchar				(

"\n ..,.;:j'::;';!|._:,;;;j/;;;jjjj.,-,r;==gg':SS///+:\\\\\\r\\:=;;??]]:;;;>2>\\F;O;7?]7;;;;?2>b;;;;??]#'\\\\\\`\\\
\\\\''<5\"\"Vq;\\\\\\`=\\\\''55\"?ggILLLD\\bfF[[[P?#M|||||#+#T[FFP?PM'"
[i]); } }

Результат работы выглядит как-то так:

ade05e9184ad58fa7ff444fbcd25a608.png

CDUA, 1995

Автор:

Carlos Duarte
Instituto Superior Tecnico
Largo da Igreja, 5 R/C DTo
Damaia
2720 Amadora
Portugal

Код:

#define r return 

char*u0=" to begin... ",*u1="Already been here!",*u2="Found a wall! \
    ",*u3="Walking...        ",*u4="Finished.         ",*u5="Going back..\
.     ",*o="\033[23;1HDone!!\n",*x="\033[2J",*y="\033[1;1H",*z="\033[%d;%\
dH%c",*w="\033[1;1H%s",*v="\033[%d;%dH%c\033[%d;%dH%c\033[%d;%dH%c",b[1841
];int c,d,e,f,g;typedef int(*h)();h i,j,k,l,m,n;int printf(),srand(),rand(
),time(),getchar();int main(int a){i=printf,j=srand,k=rand,l=time,m=getchar,
n=main;if(!c)for(j(l(0)),g=a=1000,--d;++d<1840;b[c=d]=" #\n"[d%80==79?2:d/80
&&d%80&&d/80-22&&d%80-78]);if(!(c-1839))++c,i("%s%s%s",x,y,b);k:if(!(c-1840)
&&(b[a+2]+b[a-2]+b[a+160]+b[a-160]-4*' ')){while(b[a+(f=(e=k()%4)?e-1?e-2?-1
:1:-80:80)*2]!='#');b[a]=b[a+f]=b[f+a+f]=' ';i(v,a/80+1,1+a%80,' ',(a+f)/80+
1,1+(a+f)%80,' ',(f+a+f)/80+1,1+(f+a+f)%80,' ');n(f+a+f);goto k;}else if(!(g
-a))c=1,a=162,i(w,u0),m();if(c-1){}else r b[a]!=' '?(i(w,b[a]=='.'?u1:u2),0)
:(b[a]='.',i(w,u3),i(z,a/80+1,1+a%80,'.'),a==1676?(i(w,u4),i(o),1):n(a+1)||n
(a+80)||n(a-80)||n(a-1)?1:(b[a]=' ',i(w,u5),i(z,a/80+1,1+a%80,' '),0));r 0;}

Код выше будучи скомпилированным, генерирует лабиринт 80×80 с помощью ANSII-символов:

5d6a5dc08672b7fc53e4fa12dc708ed2.png

А затем, по нажатию еще и проходит его:

Точками отображается маршрут следования.
Точками отображается маршрут следования.

Jonth, 1996

Автор: Jon Thingvold
University of Oslo
Gaustadveien 10B
N 0372 Oslo
Norway

Вердикт судей:

Best X11 Entry

и вот такой код:

#define O B F U S C A T E D
#define I 8;}t(p){r(p?W:o);XClearWindow(V,m);}main(i,f)char**f;{M((T(h=f),
#define K Y(o,XMapRaised(V,e);)x=3;x--;)for(y=3;y--;r(G))XMapRaised(V,R[D]
#define N z(x+i,(z(H-x-i,x),x)))x20&&l>x
#define XIMOfIC Z;XID(*w)()=XCreateWindow,m,e,o[2],W[2],G[2],R[2][O]);}GC*g
#define E (++D)));}r(XID*z){XSetWindowBackgroundPixmap(V=d[D],m=R[D][x][y],z[
#define L ;XStoreName(V,e=w(V,RootWindow(V,s),0,0,152,152,2,0,1,0,0,0),"II"+D
#define B 3][3];Display*V,*d[2];char**h,k=25,b[2500],H=50,D,s,x,y,i;T(){float
#define S +k),z(k-P=w(V,e,H*x,H*y,H,H,1,0,1,0,2048,&c));}XEvent J;M(){XFlush(
#define Y(z,y) ;for(z[D]=XCreatePixmapFromBitmapData(Q,x=0,H*H);xH||N;l-=.5)z(x+k,y=sqrt(l*l-x*x)
#include 
#include 

Внутри которого скрываются самые настоящие «крестики-нолики», еще и в графическом исполнении (!):

892677080be90ddd6762624098c3aa62.png

В 1996 м была еще одна удивительная работа, которую я не могу не описать.

Huffman, 1996

Автор:

Ken Huffman
Applied Innovation Inc
5800 Innovation Dr.
Dublin, OH 43016
USA

huffmancoding@gmail.com

Ken Huffman — племянник знаменитого создателя Huffman Coding, который использовали в своей работе в том или ином виде большинство программистов на планете.

Код, который я имел наглость немного поправить для сборки с новым сlang:

#define x char
#define z else
#define w gets_s
#define r if
#define u int
#define s main
#define v putchar
#define y while
#define t " A?B?K?L?CIF?MSP?E?H?O?R?DJG?NTQ?????U?V?????X???????Z????W??Y??"
 s (   )  {   x* c  ,  b[ 5  * 72   ]; u  a, e  ,  d   [  9
*9 *9 ]  ;    y  (w  ( b, sizeof(b)) ){            r  ( 0   [ b] -7 *
5        )    {  c  =     b    ;       y  (  (*    c  -  6
* 7 )* *  c )c =  c+ 1  ;   r ((   -0 )  [ c  ] &&  w (  b   +
  8 *  5*    3     , sizeof(b)   ) && w          (b   +8      *5  * 6, sizeof(b)) )
  { a       =  0; y     (                  a       [     b  ]
 ) {    a [  d  ] = ! !    ( a[ b]   -   4 *8 )    ;  a  =   a +
1;  }   y (a   <  8 *  5      *  3   )  d      [   (   a ++ )
]  =      0       ; a        =       0;            y(    b  [
 a +  8  *3   *  5  ] )  {   d  [ a  ]   = a  [    d] +  !  !( b[
a+ 40  *  3     ]  -4  * 8) *  2    ;      ++  a   ;   }     a  =
 0       ;      y  (     a     [  b +      6          *  40 ]
)  {a [d ]  +=  !   !  ( b[ a   +    5 *  6  *    8  ] - 4   *
 8        ) *  4;   a =   a  + 1    ;} a=   0;   y  (a   <3 *8
   *5       )  {    r    (     a    [       d    ]  )    {  e
 =  1  ; y    (   e[ a  +  d] ){    *  ( d+ a+    e )   = a[ d
+e -  1] +(       d   [     a  +   e  ]  <<  (   3* e) )     ;e
 =    e           +  1  ;} a       =        a     +
e -  1     ; v( !! (  *  (  d+
  a)  %   (  64  )  - 12  *  5
  )             +  (  e
>  4   ) ?t [   e   >2 ?  2  :a    [ d   ]  ]   :6 *  8  +( t  [ d[
 a    ]/ 8     /8   ]  -4  )      %( 10 )  )    ;  r(  ! (2 [a
+  d] +  3  [d +       a  ]  )    )        v    (  4  *     8    )
 ;  }    a =   a  + 1 ; } v    (5 *  2     )  ;  }    z {c =b ;   e
=  0    ;     y  (*   c )  {   *   c +=   -  (* c    >   8 *     12
   )    *  32    ;      a         =  8       *  8       ;  r  (* c
 >=  48  &&*  c<8  *8   -6)  {*c  =(   * c  + 1
 )   %(  5    * 2  ) +  65   ;y(  --a  >0   &&*
c-  a[  t]   );   d[   (e   ++   )]   =4   ;(
 * (  d +  (e   ++)  ))=  07   ;}z  y(a  --  >1
 &&*  c-   t[a  ]);  d[   ( e  = e  +    1)  -
1]   =a   %8   ;y   (a   /=   8)   d[   (e  ++
 ) ]  =    a% 8   ; ++ c   ; *  (   e ++   +d )  =0
;} --  e   ;r    (         e >0  ) {a  =   1   ;
y          (  a<       8     )  {   c =       b  ;y
 ( c  

Как это выглядит в работе:

Да, это шрифт Брайля!
Да, это шрифт Брайля!

Слово автору и примерный перевод:

This filter program is really not obfuscated code. It compiles cleanly with an ANSI C compiler and comes with user documentation that even a blind person could read.

Эта программа на самом деле не обфусцирована. Она собирается стандартным компилятором ANSI C и имеет документацию, которую может прочитать даже слепой.

The program is a bi-directional filter with the output of the program suitable for its input. The output of this program, when used as input, undoes the original program filtering.

Программа является двусторонним фильтром, для которого вывод является также вводными данными. Результат работы прораммы, будучи использованным в качестве входных данных восстанавливает оригинальные данные.

This program accepts any alphanumeric text that has lines less than 100 characters. The user is encouraged to use the program’s source as input to the executable.

Эпилог

Вообще умение решать максимальное количество проблем минимальными средствами — признак мастерства в любом деле, не только в ИТ и программировании.

Не то чтобы я призываю в обязательном порядке использовать подходы из проектов IOCCC в обычной повседневной разработке, но хотя‑бы посмотреть на что‑то работающее без 500Мб райнтайма и 2Гб библиотек думаю стоит каждому.

Еще победители IOCCC — отличный пример крайней живучести, мало где еще можно встретить сорокалетний код, который спокойно собирается и работает в современном окружении.

P.S.

Это немного почищенная и обновленная версия статьи, оригинал которой доступен в нашем блоге.

0×08 Software

Мы небольшая команда ветеранов ИТ‑индустрии, создаем и дорабатываем самое разнообразное программное обеспечение, наш софт автоматизирует бизнес‑процессы на трех континентах, в самых разных отраслях и условиях.

Оживляем давно умершее,  чиним никогда не работавшее и создаем невозможное — затем рассказываем об этом в своих статьях.

© Habrahabr.ru