HeadlinesBriefing favicon HeadlinesBriefing.com

Desafio code golf interpretador Python 1024 bytes

Hacker News •
×

Austin Z. Henley, um desenvolvedor que escreve código à mão nos fins de semana, anunciou um desafio de code golf para construir um interpretador Python em apenas 1024 bytes de código C. O projeto evita explicitamente macros e bibliotecas externas.

Henley começou implementando um programa FizzBuzz que imita a sintaxe do Python usando dois-pontos e indentação sem parênteses. Ele observou que é impossível caber toda a linguagem Python em um espaço tão pequeno, então focou em um subconjunto de sintaxe que parece 'Pythônico'. Suas tentativas iniciais foram infrutíferas; uma calculadora básica ultrapassou rapidamente o limite de 512 bytes.

Ele então mudou de estratégia, listando elementos que parecem Python enquanto reconhecia que suas habilidades de code golf eram insuficientes para a meta de 512 bytes. Decidiu fazer funcionar primeiro, depois tornar pequeno. O interpretador usa um estado mínimo mantido em variáveis globais, um array de comprimento fixo para código bruto e uma tabela de símbolos para variáveis.

Ele analisa expressões recursivamente e lida com fluxo de controle usando a pilha de chamadas C. Os loops funcionam saltando para trás e reanalisando o código fonte a cada iteração. O projeto representa um exercício único em restrições de implementação de linguagens.