
Compiler
Ein Compiler ist ein Programm, das von Menschen geschriebenen Programmcode in die Befehlssprache eines Computers übersetzt. Ohne diese Übersetzung könnte ein Prozessor mit Anweisungen wie "if" oder "print" nichts anfangen.
Menschen schreiben Programme in Sprachen, die halbwegs lesbar sind. Da stehen dann Wörter wie „if“, „while“ oder „print“. Ein Prozessor, also der Rechenchip im Gerät, versteht davon kein einziges Wort. Er kennt nur sehr einfache Befehle als Zahlenmuster: addiere diese beiden Werte, lade etwas aus dem Speicher, springe an eine andere Stelle. Ein Compiler ist das Programm, das zwischen diesen beiden Welten übersetzt. Er liest den geschriebenen Text und erzeugt daraus eine Datei, die der Chip direkt ausführen kann.
Warum Software ohne Übersetzung nicht läuft
Ohne Compiler müsste man Programme direkt in Zahlenbefehlen schreiben. Das hat man in den 1950er Jahren tatsächlich getan, und es war extrem mühsam. Ein einziger Tippfehler in einer Zahlenkolonne legte alles lahm. Erst die Übersetzerprogramme haben es möglich gemacht, Software in einer Größenordnung zu bauen, wie wir sie heute kennen. Ein modernes Betriebssystem besteht aus Dutzenden Millionen Zeilen Code.
Ein zweiter Punkt ist Geschwindigkeit. Der Compiler übersetzt nicht nur, er optimiert auch. Er erkennt Rechnungen, deren Ergebnis schon vorher feststeht, und erledigt sie gleich beim Übersetzen. Er entfernt Code, der nie erreicht wird. Er ordnet Befehle so um, dass der Prozessor weniger warten muss. Derselbe Quelltext kann dadurch je nach Optimierungsstufe zwei- oder dreimal schneller laufen.
Drittens macht ein Compiler dasselbe Programm auf verschiedenen Geräten lauffähig. Ein Chip in einem Windows-Laptop versteht andere Befehle als der Chip in einem iPhone. Der geschriebene Code bleibt aber weitgehend gleich. Man lässt ihn einfach von einem passenden Compiler für die jeweilige Zielplattform übersetzen.
Vom Quelltext zur ausführbaren Datei
Die Übersetzung läuft in mehreren Stufen ab. Zuerst zerlegt der Compiler den Text in einzelne Bausteine: Namen, Zahlen, Klammern, Operatoren. Danach prüft er, ob diese Bausteine eine sinnvolle Struktur ergeben, ähnlich wie eine Grammatikprüfung im Deutschunterricht. Fehlt eine schließende Klammer, bricht er hier ab und meldet den Fehler mit Zeilennummer.
Stimmt die Struktur, folgt die inhaltliche Prüfung. Der Compiler kontrolliert zum Beispiel, ob man versucht, eine Zahl mit einem Text zu multiplizieren. Solche Fehler findet er, bevor das Programm überhaupt einmal gelaufen ist. Anschließend baut er eine vereinfachte Zwischenform des Programms, an der die Optimierungen ansetzen. Ganz am Ende entsteht daraus der eigentliche Maschinencode für den Zielprozessor.
Wichtig ist die Abgrenzung zum Interpreter. Ein Interpreter übersetzt nicht vorab, sondern liest das Programm während der Ausführung Zeile für Zeile. Das startet schneller und ist beim Ausprobieren bequem, läuft aber meist langsamer. Sprachen wie C oder Rust werden klassisch compiliert, Python arbeitet überwiegend mit einem Interpreter. Die Grenze ist heute unscharf, weil viele Systeme während der Laufzeit nachträglich compilieren.
Compiler in KI-Chips und Entwicklerwerkzeugen
Direkt sichtbar sind Compiler selten. Wer aber eine App installiert, benutzt das Ergebnis eines Übersetzungslaufs. In Entwicklungsumgebungen läuft ein Compiler oft im Hintergrund mit und unterstreicht Fehler schon beim Tippen. Auch die roten Meldungen, über die Programmieranfänger stolpern, kommen von ihm.
In KI-Nachrichten taucht der Begriff regelmäßig auf. Ein neuronales Netz ist im Kern eine riesige Kette von Rechenoperationen. Spezielle Compiler übersetzen diese Kette in Befehle für Grafikkarten oder KI-Beschleuniger. Bekannte Beispiele sind XLA von Google und der Compiler-Teil von PyTorch. Sie fassen einzelne Rechenschritte zusammen und sparen so Speicherzugriffe.
Genau hier liegt ein wirtschaftlich relevanter Punkt. Nvidia ist unter anderem deshalb schwer angreifbar, weil sein Software- und Compiler-Ökosystem seit Jahren gepflegt wird. Konkurrenten liefern zwar leistungsfähige Chips, aber ihre Übersetzungsschicht ist oft weniger ausgereift. Wenn in Finanznachrichten von „Software-Stack“ die Rede ist, sind Compiler ein zentraler Teil davon.