TinyCompiler: Ein Compiler für ein Wochenende

2025-02-20

Dieses Projekt beschreibt die Erstellung von TinyCompiler, einem minimalistischen Compiler, der an einem Wochenende entwickelt wurde. Er übersetzt die esoterische Programmiersprache Wend (vom Autor selbst erstellt) in GNU-Assembler. Wend ist eine einfache Sprache ohne Zeiger, Arrays und andere Komplexitäten und konzentriert sich auf die grundlegenden Konzepte von Compilern. Das gesamte Projekt umfasst weniger als 500 Zeilen Python und enthält Testprogramme wie die Berechnung der Quadratwurzel mit fester Kommastelle, das Rendern der Mandelbrot-Menge und einfache Spiele. Es ist eine großartige Ressource, um mehr über Compiler-Theorie zu lernen.

Mehr lesen
Entwicklung

C-Code nur mit `#define`-Direktiven: Magische Feueranimation

2025-02-20

Dieser Artikel beschreibt, wie der Autor ein Feueranimationsprogramm nur mit der `#define`-Direktive in C erstellt hat. Diese scheinbar unmögliche Aufgabe wurde durch geschickte Verwendung der Textersetzung von Makros, Token-Konkatenation und rekursiver Aufruftechniken gelöst. Das Ergebnis ist eine Simulation von brennendem und sich ausbreitendem Feuer, die die Leistungsfähigkeit des C-Präprozessors und seine „Turing-Vollständigkeit“ demonstriert. Der Artikel hebt auch die potenziellen Risiken und Probleme bei unsachgemäßem Gebrauch von Makros hervor.

Mehr lesen
Entwicklung