HeadlinesBriefing favicon HeadlinesBriefing.com

Python-Interpreter 1024 Bytes Code Golf Challenge

Hacker News •
×

Austin Z. Henley, ein Entwickler, der am Wochenende code von Hand schreibt, kündigte eine Code-Golf-Challenge an, einen Python-Interpreter in nur 1024 Bytes C-Code zu erstellen. Das Projekt vermeidet ausdrücklich Makros und externe Bibliotheken.

Henley begann mit der Implementierung eines FizzBuzz-Programms, das die Python-Syntax mithilfe von Doppelpunkten und Einrückungen ohne Klammern nachahmt. Er stellte fest, dass es unmöglich ist, die gesamte Python-Sprache in einen so kleinen Footprint zu passen, und konzentrierte sich daher auf eine Syntax-Untermenge, die »pythonisch« aussieht. Seine ersten Versuche waren erfolglos; ein einfacher Taschenrechner überschritt schnell das 512-Byte-Limit.

Dann änderte er seine Strategie, listete Elemente auf, die Python-ähnlich aussehen, und gab zu, dass seine Code-Golf-Fähigkeiten für das 512-Byte-Ziel unzureichend waren. Er beschloss, es zuerst zum Laufen zu bringen und dann klein zu machen. Der Interpreter verwendet einen minimalen Zustand in globalen Variablen, ein festes Array für Rohcode und ein Symboltabelle für Variablen.

Er analysiert Ausdrücke rekursiv und verarbeitet die Steuerung mit dem C-Aufrufstack. Schleifen funktionieren, indem sie zurückspringen und den Quellcode bei jeder Iteration neu analysieren. Das Projekt stellt eine einzigartige Übung in Sprachimplementierungsbeschränkungen dar.