Compiler Pipeline
Emerald-Code wird nicht interpretiert. Er wird in mehrere Schritte übersetzt, bis ein natives Programm entsteht.
Die Pipeline
Die Landing Page beschreibt die Zielrichtung: Emerald Source wird zu Crystal Source, Crystal geht über LLVM, und am Ende steht ein ausführbares Binary.
Typische Compiler-Phasen
Parsing liest Text und baut einen Syntaxbaum. Resolving findet Namen. Type Checking prüft Typen. Macro Expansion verändert den AST. Codegen erzeugt Zielcode.
Parse
Text wird zu Struktur.
Resolve
Namen werden gefunden und verbunden.
Type Check
Der Compiler prüft, ob Typen zusammenpassen.
Codegen
Aus Emerald wird Crystal-Code.
Positive und negative Tests
Positive Beispiele müssen kompilieren und laufen. Negative Tests müssen mit erwarteten Fehlermeldungen scheitern.
Das ist für eine Sprache extrem wichtig: Nicht nur korrekter Code muss funktionieren, falscher Code muss auch sauber abgelehnt werden.