Austin a réussi à faire tenir dans un code source de 1024 octets un programme FizzBuzz fonctionnant avec une syntaxe similaire à celle de Python ; l’objectif de 512 octets, en revanche, n’a pas été atteint. L’interpréteur ainsi obtenu prend en charge les variables entières, l’affectation, l’arithmétique, les structures de contrôle, les fonctions et l’affichage. En revanche, il ne comprend ni bytecode, ni arbre syntaxique, ni gestion des erreurs ; les noms de variables sont limités à une seule lettre minuscule.
Pourquoi c’est important
Ce projet montre quelles couches sont indispensables et lesquelles peuvent être sacrifiées pour faire fonctionner les fonctionnalités fondamentales d’un langage de programmation. En raison de la contrainte de taille du code source, la structure obtenue doit être considérée non pas comme une implémentation Python complète, mais comme un exemple illustrant la combinaison minimale viable des fonctionnalités d’un langage. Le fait d’exclure le bytecode, l’arbre syntaxique et la gestion des erreurs montre que le coût du code court n’est pas seulement technique : il se paie aussi en facilité d’utilisation et en robustesse. La limitation des noms de variables et l’impossibilité d’atteindre l’objectif de 512 octets laissent clairement apparaître la frontière entre fonctionnalités et taille du code dans ce type de travail de compression. À cet égard, cette réalisation montre comment la conception d’un interpréteur peut être simplifiée dans les limites techniques.