Referenz Advanced 9 min

Compiler Pipeline

Emerald-Code wird nicht interpretiert. Er wird in mehrere Schritte übersetzt, bis ein natives Programm entsteht.

01 Lesson

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.

app.ems
app.cr
LLVM IR
./app
02 Lesson

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.

03 Lesson

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.