Compiler und Interpreter: Unterschied zwischen den Versionen
Aus FI-Wiki
Keine Bearbeitungszusammenfassung |
|||
| Zeile 65: | Zeile 65: | ||
| Java, C, C++ | | Java, C, C++ | ||
| Python, JavaScript, PHP | | Python, JavaScript, PHP | ||
|} | |||
=== Vorteile und Nachteile === | |||
{| class="wikitable" style="width:100%; text-align:center;" | |||
! Verfahren | |||
! Vorteile | |||
! Nachteile | |||
|- | |||
| '''Compiler''' | |||
| schnelle Ausführung | |||
optimierter Code | |||
Fehler früh erkennbar | |||
| längere Übersetzungszeit | |||
Programm muss neu kompiliert werden | |||
|- | |||
| '''Interpreter''' | |||
| sofortige Ausführung | |||
ideal für Tests und Skripte | |||
kein Kompilieren nötig | |||
| langsamer | |||
Fehler erst während der Ausführung | |||
|} | |} | ||
Aktuelle Version vom 14. November 2025, 08:55 Uhr
Compiler und Interpreter
Programmiersprachen benötigen eine Übersetzung, damit der Computer den geschriebenen Quellcode ausführen kann. Dabei kommen zwei grundlegende Übersetzungsverfahren zum Einsatz: Compiler und Interpreter.
Was ist ein Compiler?
Ein Compiler übersetzt den gesamten Quellcode auf einmal in eine andere Form – meist in Maschinencode oder wie in Java in Bytecode.
- arbeitet vollständig vor der Ausführung
- erzeugt eine neue Datei (z. B. *.class* bei Java)
- überprüft den gesamten Code auf syntaktische Fehler
- führt das Programm erst nach der erfolgreichen Übersetzung aus
Beispiel (Java):
javac Programm.java → Programm.class
Eigenschaften:
- schnelle Programmausführung
- gut für große Programme
- Fehler werden schon beim Kompilieren entdeckt
Was ist ein Interpreter?
Ein Interpreter übersetzt und führt den Quellcode Schritt für Schritt zur Laufzeit aus.
- kein Erzeugen einer separaten Datei
- liest den Code Zeile für Zeile
- stoppt direkt beim ersten Fehler
- häufig verwendet in Skriptsprachen
Beispiele:
- Python
- JavaScript
- PHP
Eigenschaften:
- sofortige Ausführung
- ideal zum schnellen Testen
- tendenziell langsamer als kompilierter Code
Vergleich: Compiler vs. Interpreter
| Merkmal | Compiler | Interpreter |
|---|---|---|
| Übersetzung | gesamte Datei auf einmal | Zeile für Zeile |
| Ausführungsgeschwindigkeit | schnell (optimierter Code) | langsamer |
| Fehlererkennung | Fehler bereits vor der Ausführung | Fehler zur Laufzeit |
| Ergebnis | erzeugt Datei (z. B. *.class*) | keine separate Datei |
| Typische Sprachen | Java, C, C++ | Python, JavaScript, PHP |
Vorteile und Nachteile
| Verfahren | Vorteile | Nachteile |
|---|---|---|
| Compiler | schnelle Ausführung
optimierter Code Fehler früh erkennbar |
längere Übersetzungszeit
Programm muss neu kompiliert werden |
| Interpreter | sofortige Ausführung
ideal für Tests und Skripte kein Kompilieren nötig |
langsamer
Fehler erst während der Ausführung |
Wie arbeitet Java?
Java nutzt beide Prinzipien kombiniert:
- Compiler (javac) → erzeugt Bytecode
- JVM-Interpreter / JIT-Compiler → führt Bytecode aus
Dadurch ist Java:
- plattformunabhängig
- effizient
- sicher
Kurz gesagt
- Ein Compiler übersetzt den gesamten Quellcode vor der Ausführung.
- Ein Interpreter führt den Code Zeile für Zeile direkt aus.
- Java kombiniert beide Verfahren (Compiler → Bytecode → JVM).
