Compiler: Die Definition des “Dolmetschers” der IT
Inzwischen kennt die Informatik verschiedenste Sprachen, in denen Entwickler Programme schreiben. Nicht alle sind direkt von Computern versteh- und ausführbar. Für Programme, die in sogenannten höheren Programmiersprachen, wie beispielsweise Java, C#, Pascal oder Visual Basic .NET, geschrieben sind, braucht es also einen speziellen Übersetzer - den Compiler, oder auch Kompilierer.
Er übersetzt den in einer höheren Sprache geschriebenen Programmcode in ausführbaren Maschinencode oder einen Zwischencode, wie Bytecode oder .NET-Code. Wie das genau funktioniert und welche Arten von Compilern es gibt, erläutern wir in der folgenden Compiler-Definition in unserer Eigenschaft als Spezialisten für Anwendungsmodernisierung.
So arbeiten Compiler
Ist ein Programm geschrieben und soll in maschinenlesbaren Code kompiliert werden, wählt der Entwickler den für die Sprache passenden Compiler, gibt den Namen der Datei an, die den Quellcode enthält und startet den Prozess der Übersetzung. Das Kompilieren umfasst laut Compiler-Definition in der Regel folgende Schritte:
- Syntaxprüfung: In dieser Phase wird der Quellcode auf die korrekte Syntax der genutzten Programmiersprache geprüft. Werden Fehler festgestellt, werden diese in ein Protokoll überführt. Das Resultat dieser Phase ist ein Zwischencode, beispielsweise Intermediate Language (IL-Code) bei in .NET geschriebenen Programmen.
- Analyse und Optimierung: Der Zwischencode wird dann analysiert und optimiert. Verschiedene Einstellungsmöglichkeiten und auch die Wahl des Compilers selbst nehmen dabei Einfluss auf Umfang und Dauer dieser Phase.
- Code-Generierung: Anschließend wird der Ausgabecode (Objektcode, Binärcode) generiert, der von Computer-Prozessoren verarbeitet und ausgeführt werden kann.
Arten von Compilern
Grundsätzlich kennt die Compiler-Definition vier hauptsächliche Arten der Programme:
Native Compiler: Dieser Typ erzeugt den Code für die Umgebung, auf der er selbst läuft. Der Code ist also plattformspezifisch.
Cross-Compiler: Im Gegensatz zum Native Compiler erzeugt dieser den Zielcode für eine andere Plattform, wie beispielsweise ein anderes Betriebssystem.
Single-pass-Compiler: Ein solcher Compiler erzeugt den Ziel- aus dem Quellcode in nur einem einzigen Durchlauf. Dadurch arbeitet er sehr schnell, kann aber nur einfache Optimierungen des Codes vornehmen.
Multi-pass-Compiler: Anders als beim Single-pass-Compiler erfolgt die Übersetzung des Quellcodes hier in mehreren Durchläufen. Multi-pass-Compiler sind dafür in der Lage, auch aufwändige Optimierungen durchzuführen.
Weitere Typen
Daneben gibt es Sonderformen wie Transcompiler / Transpiler, Just-in-time-Compiler oder Compreter. Letztere kombinieren die Vorteile von Compilern sowie Interpretern. Auch Interpreter sind Programme, die Anweisungen in Maschinensprache übersetzen. Sie arbeiten zwar deutlich langsamer als Compiler, bieten dafür aber eine bessere Fehleranalyse.
Sie interessieren sich für Anwendungsentwicklung und Softwaremodernisierung? Neben diesem Beitrag zur Definition von Compiler finden Sie weitere Erläuterungen und Begriffsklärungen in unserem IT-Glossar!