HeadlinesBriefing favicon HeadlinesBriefing.com

Desafío Intérprete Python 1024 bytes código golf

Hacker News •
×

Austin Z. Henley, un desarrollador que escribe código a mano los fines de semana, anunció un desafío de código golf para construir un intérprete Python en solo 1024 bytes de código C. El proyecto evita explícitamente macros y bibliotecas externas.

Henley comenzó implementando un programa FizzBuzz que imita la sintaxis de Python usando dos puntos e indentación sin paréntesis. Señaló que es imposible adaptar todo el lenguaje Python en un espacio tan pequeño, por lo que se enfocó en un subconjunto de sintaxis que se vea 'Pythónico'. Sus intentos iniciales fueron infructuosos; una calculadora básica excedió rápidamente el límite de 512 bytes.

Luego cambió de estrategia, enumerando elementos que se ven parecidos a Python mientras reconocía que sus habilidades de código golf eran insuficientes para la meta de 512 bytes. Decidió hacer que funcione primero, luego hacerlo pequeño. El intérprete utiliza un estado mínimo almacenado en variables globales, un arreglo de longitud fija para el código fuente y una tabla de símbolos para variables.

Analiza expresiones recursivamente y maneja el flujo de control usando la pila de llamadas de C. Los bucles funcionan saltando hacia atrás y volviendo a analizar el código fuente en cada iteración. El proyecto representa un ejercicio único en restricciones de implementación de lenguajes.