TinyCompiler: Um compilador de fim de semana

2025-02-20

Este projeto descreve a criação do TinyCompiler, um compilador minimalista construído em um fim de semana. Ele traduz a linguagem de programação esotérica Wend (criada pelo autor) para assembly GNU. Wend é uma linguagem simples, omitindo ponteiros, matrizes e outras complexidades, focando nos conceitos básicos de compiladores. O projeto inteiro tem menos de 500 linhas de Python e inclui programas de teste como cálculo de raiz quadrada de ponto fixo, renderização do conjunto de Mandelbrot e jogos simples. É um ótimo recurso para aprender sobre teoria de compiladores.

Leia mais
Desenvolvimento

Código C com apenas diretivas `#define` : Animação de fogo com magia negra

2025-02-20

Este artigo detalha como o autor criou um programa de animação de fogo usando apenas a diretiva `#define` em C. Essa tarefa aparentemente impossível foi realizada usando inteligentemente os recursos de substituição de texto de definições de macro, concatenação de tokens e técnicas de chamada recursiva. O resultado é uma simulação de fogo queimando e se espalhando, demonstrando o poder do pré-processador C e sua 'completude de Turing'. O artigo também destaca os riscos e problemas potenciais do uso inadequado de macros.

Leia mais
Desenvolvimento pré-processador