IOCCC de Retour : Les Maîtres Humains du C Déjouent Toujours l'IA
Après une interruption de quatre ans, l’International Obfuscated C Code Contest (IOCCC) a fait un retour triomphal cette année, marquant son grand retour avec un nombre sans précédent de 23 entrées gagnantes. Ce nombre record de distinctions témoigne de la qualité inhabituellement élevée des soumissions, démontrant la maîtrise extraordinaire du langage C par les programmeurs du monde entier. Parmi les lauréats remarquables figuraient un programme qui utilisait ingénieusement des caractères Unicode invisibles pour imprimer une recette complète de saumon, et un autre qui a mémorablement “rickrollé” les juges avec une musique et des graphiques 8 bits méticuleusement recréés à partir de l’Atari 2600.
Les juges, y compris le fondateur du concours Landon Curt Noll, ont révélé qu’ils avaient expérimenté avec des grands modèles linguistiques (LLM) pour analyser le code soumis. Cependant, les résultats de ces modèles d’IA étaient mitigés et, finalement, ils n’ont pas été employés dans le processus de jugement final. Les juges ont souligné la capacité durable des programmeurs humains à créer du code dépassant de loin les capacités actuelles de l’intelligence artificielle. Un exemple frappant de cela a été un moteur d’inférence LLM de 750 octets développé par l’un des gagnants, un exploit que Noll estime qu’aucun modèle d’IA actuel ne pourrait reproduire. Le code source de toutes les entrées gagnantes, y compris le tristement célèbre “Rickroll”, est désormais accessible au public sur un dépôt GitHub dédié, et l’IOCCC devrait revenir en décembre 2025. Comme l’a observé Noll, “À chaque concours, il y a de nouvelles choses que je ne savais pas que l’on pouvait faire avec le C que les gens montrent qu’ils peuvent faire !”
L’événement de cette année a également vu la renaissance d’une tradition vieille de 40 ans : l’annonce en direct des gagnants. Cela remonte aux années 1980, lorsque les gagnants étaient dévoilés lors d’une session spéciale de la conférence Usenix, souvent immédiatement après une présentation sur la dernière version de BSD. Noll a rappelé avec humour ces premiers jours, où il présentait les résultats en “imprimant des choses sur des transparents et en utilisant un rétroprojecteur”, un contraste frappant avec les projections numériques d’aujourd’hui. Les organisateurs du concours ont depuis modernisé leur infrastructure, offrant désormais des vidéos démontrant la sortie souvent bizarre et brillante des entrées gagnantes compilées. Noll, avec l’aide de David McInnis, a orchestré une cérémonie de remise des prix élaborée en 2025, comprenant plusieurs flux vidéo et audio et de la musique originale, garantissant que chaque entrée gagnante recevait la lumière des projecteurs qu’elle méritait.
Noll pense que la longue pause de quatre ans a, par inadvertance, donné aux candidats plus de temps pour affiner leurs soumissions, ce qui a entraîné une augmentation des entrées de haute qualité. Alors que les concours passés attribuaient généralement 12 à 15 prix, les 23 gagnants de cette année ont dépassé tous les records précédents. Le volume impressionnant d’entrées exceptionnelles a fait qu’il n’y a pas eu de seul gagnant du “Meilleur de l’Exposition” ou du “Grand Prix”, tant d’entre elles étant jugées dignes des plus grands honneurs.
Concernant l’impact de l’IA, Leonid A. Broukhis, deux fois lauréat de l’IOCCC et juge de longue date, a noté que l’interruption leur a permis de tester les LLM pour l’analyse de code. Bien que certains modèles puissent vaguement déduire le but de certaines entrées en se basant sur la structure générale ou la logique mathématique, d’autres étaient “complètement désemparés”. Noll a explicitement déclaré que les LLM n’ont pas été utilisés pour le jugement, ni n’a-t-il recommandé leur utilisation pour la création de futures entrées. Il a averti que le code généré par l’IA pour un concours aussi nuancé serait probablement de la “camelote”, échouant souvent à compiler ou ressemblant à du C en apparence mais pas en fonctionnalité. Noll, en réfléchissant à ses 40 ans de jugement, a loué les programmeurs humains comme des “maîtres du langage C”, capables d’un immense effort et d’une grande habileté à condenser des idées complexes en petits morceaux obfusqués. Bien que les LLM puissent éventuellement servir à de futurs participants – peut-être pour tester si leur code est vraiment incompréhensible pour une IA – Noll a souligné que l’élément humain reste primordial.
L’entrée tristement célèbre de Rickroll, soumise par le programmeur Vince Weaver, a été un point culminant. Les juges ont décrit leur processus déconcerté de déchiffrement du code, qui impliquait d’énormes déclarations de constantes, un processus enfant forké et des délais stratégiques, avant de réaliser qu’ils étaient tombés victimes de cette farce Internet vieille de plusieurs décennies. Le programme était un portage rudimentaire d’une version Atari 2600, avec de la musique et des graphiques 8 bits. Une autre entrée étonnante est venue du légendaire programmeur C obfusqué Yusuke Endoh, dont le programme affichait de magnifiques animations ASCII d’objets en rotation, démontrant la physique du monde réel d’un corps rigide en rotation. Endoh a même astucieusement intégré l’image d’une toupie dans les espaces blancs de son code source fortement obfusqué. Adrian Cable, en plus de son moteur d’inférence LLM, a soumis une deuxième entrée primée : un programme de 15 lignes apparemment inoffensif. Ce code, comportant une déclaration de variable trompeuse (unsigned int *salmon = U" is very yummy";
), imprimait comme par magie une recette complète de saumon grillé. L’astuce résidait dans des caractères Unicode invisibles qui formaient des lignes de code supplémentaires, habilement cachées des éditeurs de texte standard, ainsi qu’une boucle for
leurre déroutante, jamais exécutée. Cette soumission ingénieuse a valu le prix “Murky Waters” du concours.
Pour l’avenir, le dépôt GitHub spécial héberge désormais le code source de chaque IOCCC depuis 1984, rendant l’histoire du C obfusqué facilement accessible. Les plans futurs incluent de courtes vidéos présentant les anciens gagnants, des mises à jour des outils d’empaquetage des entrées et des améliorations de l’infrastructure du serveur du concours. La prochaine période d’inscription à l’IOCCC devrait ouvrir en décembre 2025, les organisateurs prévoyant de réviser et d’affiner les règles du concours en fonction de leurs récentes expériences de jugement. Pour l’instant, les juges, ayant consacré des milliers d’heures au projet depuis décembre 2020, prennent une pause bien méritée, impatients de déconnecter et de profiter des fruits du travail incroyable des participants.