HeadlinesBriefing favicon HeadlinesBriefing.com

Défi code golf interpréteur Python 1024 octets

Hacker News •
×

Austin Z. Henley, un développeur qui écrit du code à la main le week-end, a annoncé un défi code golf pour construire un interpréteur Python en seulement 1024 octets de code C. Le projet évite explicitement les macros et les bibliothèques externes.

Henley a commencé par implémenter un programme FizzBuzz qui imite la syntaxe Python en utilisant des deux-points et l'indentation sans parenthèses. Il a noté qu'il était impossible de faire tenir tout le langage Python dans un espace aussi restreint, il s'est donc concentré sur un sous-ensemble de syntaxe qui ressemble à du 'Python'. Ses premières tentatives ont échoué ; une calculatrice de base a rapidement dépassé la limite de 512 octets.

Il a ensuite changé de stratégie, énumérant les éléments qui ressemblent à Python tout en reconnaissant que ses compétences en code golf étaient insuffisantes pour l'objectif de 512 octets. Il a décidé de le faire fonctionner d'abord, puis de le rendre petit. L'interpréteur utilise un état minimal stocké dans des variables globales, un tableau de longueur fixe pour le code brut et une table de symboles pour les variables.

Il analyse les expressions récursivement et gère le flux de contrôle en utilisant la pile d'appels C. Les boucles fonctionnent en revenant en arrière et en réanalysant le code source à chaque itération. Le projet représente un exercice unique dans les contraintes d'implémentation de langages.