In diesem Artikel tauchen wir in die faszinierende Welt von International Obfuscated C Code Contest ein und erforschen seine Ursprünge, Entwicklung und Relevanz in der heutigen Gesellschaft. Von seinen ersten Auftritten bis zu seinem Einfluss auf das Alltagsleben hat International Obfuscated C Code Contest die Aufmerksamkeit von Millionen Menschen auf der ganzen Welt auf sich gezogen. Durch eine tiefe und detaillierte Analyse werden wir die verschiedenen Aspekte untersuchen, die es so unglaublich interessant und erkundungswürdig machen. Von seinen möglichen Auswirkungen in der Zukunft bis hin zu seiner Bedeutung in der Gegenwart hat International Obfuscated C Code Contest einen unauslöschlichen Eindruck in der Geschichte hinterlassen, und es ist wichtig, seine Bedeutung heute zu verstehen. Begleiten Sie uns auf dieser spannenden Tour durch International Obfuscated C Code Contest und erfahren Sie alles über dieses unwiderstehliche Phänomen.

Der International Obfuscated C Code Contest (kurz IOCCC) ist ein Programmierwettbewerb für die am kreativsten verschleierten C-Programme (engl.: to obfuscate: von lat. obfuscare, dt.: verdunkeln). Er wurde von 1984 bis 1996 jährlich veranstaltet und danach in unregelmäßigen Abständen.
Die Programmiersprache C ist eigentlich stark strukturiert und weitgehend typisiert, gibt dem Programmierer aber sehr große Freiheiten in Bezug auf die Art, wie der Quelltext aufgebaut sein soll. Zusätzlich erlaubt der sogenannte Präprozessor das Ersetzen von Textbausteinen mittels sogenannter Makros durch andere Textteile vor dem eigentlichen Übersetzungsschritt. Diese Freiheiten erlauben es, den semantisch gleichen Quellcode durch eine Vielzahl verschiedener tatsächlicher Quelltexte darzustellen, darunter auch solche, die völlig unverständlich oder verwirrend sind. So kann man ohne weiteres dem Schlüsselwort „true“ für „wahr“ den Wert „falsch“ zuweisen und umgekehrt. Wird Informatikprojekten keine saubere Struktur zugrunde gelegt oder sind die Programmierer unerfahren, können unverständliche und insbesondere unwartbare Programme auch unbeabsichtigt entstehen. Die Aufgabe im nicht ganz ernst gemeinten Wettbewerb besteht darin, absichtlich solchen Code zu schreiben.
Den Beiträgen werden jedes Jahr in zahlreichen Kategorien wie z. B. Worst Abuse of the C preprocessor (dt.: übelster Missbrauch des C-Präprozessors) oder Most Erratic Behavior (dt.: unberechenbarstes Verhalten) Preise verliehen.
Der IOCCC wurde von Landon Curt Noll und Larry Bassel initiiert, als diese über den furchtbaren Programmcode sprachen, den sie beruflich zu warten hatten. Sie entschieden sich, einen Wettbewerb für den schlimmstmöglichen C-Programmcode abzuhalten. Innerhalb der Begrenzung der Quellcodegröße auf wenige Kilobyte schaffen es die Wettbewerbsteilnehmer dennoch, komplizierte Dinge zu tun.
Einige Zitate der Gewinner von 2004:
Ein typischer Wettbewerbsbeitrag (von Brian Westley, 1988,[1] leicht angepasst zwecks Kompatibilität mit heutigen C-Compilern):
#define _ F-->00||F-OO--;
int F=00,OO=00;main(){F_OO();printf("%1.3f\n",4.*-F/OO/OO);}F_OO()
{
_-_-_-_
_-_-_-_-_-_-_-_-_
_-_-_-_-_-_-_-_-_-_-_-_
_-_-_-_-_-_-_-_-_-_-_-_-_-_
_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
_-_-_-_-_-_-_-_-_-_-_-_-_-_
_-_-_-_-_-_-_-_-_-_-_-_
_-_-_-_-_-_-_-_
_-_-_-_
}
Dieses Programm berechnet die Kreiszahl Pi, indem es seine eigene Fläche nutzt; einen präziseren Wert erhält man, indem man eine Programmversion mit mehr Kreisfläche verwendet.
Typisch für die Einsendungen sind u. a.:
Aus der Art des Wettbewerbs ergaben sich Programme, welche sich am Rande der C-Standards bewegten oder welche nur über selten verwendete Ausführungspfade der Compiler übersetzt werden konnten. Daher sind viele ältere Wettbewerbsbeiträge nicht mit einem modernen Compiler übersetzbar und einige verursachen sogar Compilerabstürze.
Der IOCCC soll lustig, erzieherisch und bildend sein, daher wurden gleichartige Wettbewerbe für Programmierer anderer Programmiersprachen ins Leben gerufen:
| Programmiersprache | Wettbewerb |
|---|---|
| Erlang | Obfuscated Erlang/OTP Competition |
| Perl | Obfuscated Perl Contest |
| Ruby | Obfuscated Ruby Contest |