Architecture

Intermediate Representation (IR)

Die IR ist das Rückgrat des Compilers. Sie dient als universelle Zwischendarstellung zwischen dem AST und den verschiedenen Code-Generatoren.

Universelle Zwischendarstellung

Nachdem der Code alle Validierungs-Passes (AutoFix bis Borrow Checker) durchlaufen hat, wird er in die IR überführt. Diese Darstellung nutzt SSA (Single Static Assignment), um komplexe Optimierungen zu ermöglichen.

SSA-Format

Jede Variable wird genau einmal zugewiesen. Dies vereinfacht Datenfluss-Analysen und ermöglicht präzise Optimierungen wie Constant Folding.

Target Agnostic

Die IR ist unabhängig von der Zielsprache. Dies ermöglicht den Multi-Target-Support für 8 verschiedene Backends ohne Redundanz.

IR Pipeline & Komponenten

IR Builder

Konvertiert den AST vollständig zu IR inklusive SSA-Format und Control Flow Graph (CFG).

IR Optimizer

Führt Dead Code Elimination, Constant Folding und Function Inlining auf der IR durch.

IR Validator

Prüft die IR auf strukturelle Korrektheit, SSA-Konformität und Typ-Konsistenz vor dem Codegen.