Ioccc

LEGANERD 042742

Chiunque abbia mai programmato in C si è spesso reso conto di quanto possa essere complesso leggerne un listato scritto in maniera pessima da programmatori inesperti, chiedendosi inoltre, fino a che livello si potesse scendere in basso.
Questo è quello che si sono chiesti anche Landon Curt Noll, Simon Cooper, Peter Seebach e Leonid A. Broukhis che, vedendo i sorgenti della Shell Bourne e del comando finger distribuiti nella BSD4.2, si posero una domanda: se quelli erano i risultati di ciò che la gente chiamava un ragionevole esercizio di programmazione, cosa si poteva ottenere mettendosi d’impegno per produrre codice che fosse scritto il peggio possibile?

Da questa idea, nel 1984, nasce l’IOCCC (International Obfuscate C Code Contest), che si pone i seguenti obbiettivi e le seguenti regole:

• scrivere un programma in C il più oscuro/offuscato possibile (secondo le regole stabilite);
• evidenziare in modo ironico l’importanza di un bello stile di programmazione;
• stressare i compilatori C con del codice fuori dal comune;
• illustrare le sottigliezze del linguaggio C;

Le regole sono poche, in effetti:

• bisogna creare un programma completo;
• il sorgente dev’essere minore di 3217 byte (nota divertente: guardate quanti Kilobyte sono… ;) ), e eliminando i “whitespace” (spazi, tabulazioni, ritorni a capo) e i delimitatori (“;” e parentesi graffe) esso deve risultare minore di 1536 byte;
• il file di build, il sorgente e l’eseguibile generato devono poter essere read-only; insomma, il programma non dovrà “auto-modificarsi”, o almeno dovrà farlo creando una copia di essi;
• il sorgente deve compilarsi senza problemi su un compilatore ANSI C, a meno che gli eventuali errori non siano parte dei propositi del programma stesso;
• il programma dev’essere un lavoro originale;
• non deve richiedere interazione umana per compilare;
• non deve richiedere privilegi particolari per girare.

Sono stati inviati negli anni i programmi più complessi ed impensabili, che spesso univano alla programmazione l’ASCII art come si vede nel simulatore di volo che apre la pagina.

Fonte IOCCC.
Ndsabas: Gli screenshot sono di alcuni programmi vincitori del 2004, potete trovare tutti i listati vincitori qui, happy debugging.

Il codice sorgente del computer dell'Apollo 11
Il codice sorgente del computer dell'Apollo 11
Telegram, il contest da 1 milione di dollari
Telegram, il contest da 1 milione di dollari
Shellshock - BashBug: quello che dovete sapere
Shellshock - BashBug: quello che dovete sapere
La storia dei linguaggi di programmazione in un infografica
La storia dei linguaggi di programmazione in un infografica
NASA ISS Longeron Challenge
NASA ISS Longeron Challenge
Google I/O Extended e Chrome Gaming Hackathon - Milano 27/28 Giugno
Il codice sorgente di Doom 3 verrà rilasciato