Ein Compiler übersetzt Quelltext vollständig in eine Form, die der Rechner ausführen kann, bevor das Programm startet.
- Compiler
Ein Programm, das Quelltext vollständig in Maschinencode übersetzt, bevor das Ergebnis ausgeführt wird.
Beispiel: „Der Compiler meldet den Tippfehler, lange bevor jemand das Programm startet.“Herkunft: lateinisch compilare, zusammentragen.
Abgrenzung zum Transpiler: Der Compiler übersetzt nach unten, in eine maschinennähere Form. Ein Transpiler übersetzt auf derselben Ebene, von einer Hochsprache in eine andere.
Was er nebenbei prüft
Er liest den gesamten Quelltext, und dabei fällt auf, was nicht zusammenpasst: ein falscher Datentyp, eine Funktion mit zu wenigen Argumenten, eine Variable, die es nicht gibt. All das meldet er, bevor irgendetwas läuft.
Genau das ist in großen Projekten der eigentliche Nutzen, mehr noch als die Geschwindigkeit. Ein Fehler in einem selten durchlaufenen Zweig fällt hier auf und nicht erst im Betrieb.
Was dabei herauskommt
Je nach Sprache Verschiedenes. Go und Rust erzeugen eine ausführbare Datei, die ohne weitere Software läuft. Java und C# erzeugen eine Zwischenform, die eine Laufzeitumgebung ausführt.
Für ein Projekt macht das einen praktischen Unterschied. Im ersten Fall kopierst du eine Datei auf den Server, im zweiten muss dort die passende Umgebung installiert und gepflegt sein.
Dass auch im Web kompiliert wird
Nicht die Seite selbst, aber fast alles davor. Ein Bundler fasst Dateien zusammen, ein Transpiler übersetzt neueres JavaScript in älteres, ein Präprozessor macht aus SCSS gewöhnliches CSS.
Wenn im Projektgespräch vom Bauen die Rede ist, sind diese Schritte gemeint. Sie laufen vor dem Ausliefern, und was auf dem Server landet, ist ihr Ergebnis.