TinyCompiler: Un compilador de fin de semana

2025-02-20

Este proyecto detalla la creación de TinyCompiler, un compilador minimalista construido en un fin de semana. Traduce el lenguaje de programación esotérico Wend (creado por el autor) a ensamblador GNU. Wend es un lenguaje simple, omitiendo punteros, matrices y otras complejidades, centrándose en los conceptos básicos de los compiladores. El proyecto completo tiene menos de 500 líneas de Python e incluye programas de prueba como el cálculo de la raíz cuadrada de punto fijo, la representación del conjunto de Mandelbrot y juegos simples. Es un gran recurso para aprender sobre la teoría de compiladores.

Leer más
Desarrollo

Código C con solo directivas `#define` : Animación de fuego con magia negra

2025-02-20

Este artículo detalla cómo el autor creó un programa de animación de fuego utilizando solo la directiva `#define` en C. Esta tarea aparentemente imposible se logró utilizando inteligentemente las capacidades de reemplazo de texto de las definiciones de macro, la concatenación de tokens y las técnicas de llamada recursiva. El resultado es una simulación de fuego quemándose y propagándose, demostrando el poder del preprocesador C y su "completitud de Turing". El artículo también destaca los riesgos y problemas potenciales del uso inadecuado de macros.

Leer más
Desarrollo preprocesador