Austin è riuscito a far rientrare in 1024 byte di codice sorgente un programma FizzBuzz funzionante con una sintassi simile a quella di Python; l’obiettivo di 512 byte, invece, non è stato raggiunto. L’interprete risultante supporta variabili intere, assegnazioni, operazioni aritmetiche, strutture di controllo, funzioni e stampa. Tuttavia, non include bytecode, albero sintattico né gestione degli errori; inoltre, i nomi delle variabili sono limitati a una sola lettera minuscola.
Perché è importante
Questo progetto rende evidente quali livelli siano indispensabili e quali possano essere sacrificati per eseguire le funzionalità fondamentali di un linguaggio di programmazione. A causa del limite imposto al codice sorgente, la struttura risultante va letta più come un esempio della combinazione minima praticabile delle caratteristiche di un linguaggio che come un’implementazione completa di Python. L’esclusione di bytecode, albero sintattico e gestione degli errori dimostra che il prezzo del codice breve non viene pagato soltanto sul piano tecnico, ma anche in termini di facilità d’uso e robustezza. La limitazione dei nomi delle variabili e il mancato raggiungimento dell’obiettivo di 512 byte lasciano evidente il confine tra funzionalità e dimensioni del codice in questo tipo di lavori di ottimizzazione. Sotto questo profilo, il progetto mostra come la progettazione di un interprete possa essere semplificata entro limiti tecnici.