Compiler und Interpreter: Unterschied zwischen den Versionen
Aus FI-Wiki
Die Seite wurde neu angelegt: „== 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 Aus…“ |
Keine Bearbeitungszusammenfassung |
||
| (4 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt) | |||
| Zeile 5: | Zeile 5: | ||
=== Was ist ein Compiler? === | === Was ist ein Compiler? === | ||
Ein Compiler übersetzt den gesamten Quellcode | 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 | * arbeitet vollständig vor der Ausführung | ||
* erzeugt eine neue Datei (z. B. *.class* bei Java) | * erzeugt eine neue Datei (z. B. *.class* bei Java) | ||
* überprüft den gesamten Code auf Fehler | * überprüft den gesamten Code auf syntaktische Fehler | ||
* führt das Programm erst nach der erfolgreichen Übersetzung aus | * führt das Programm erst nach der erfolgreichen Übersetzung aus | ||
| Zeile 23: | Zeile 23: | ||
=== Was ist ein Interpreter? === | === Was ist ein Interpreter? === | ||
Ein Interpreter übersetzt und führt den Quellcode | Ein Interpreter übersetzt und führt den Quellcode '''Schritt für Schritt zur Laufzeit''' aus. | ||
* kein Erzeugen einer separaten Datei | * kein Erzeugen einer separaten Datei | ||
| 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 | |||
|} | |} | ||
=== Wie arbeitet Java? === | === Wie arbeitet Java? === | ||
Java nutzt | Java nutzt '''beide Prinzipien kombiniert''': | ||
# Compiler ('''javac''') → erzeugt Bytecode | # Compiler ('''javac''') → erzeugt Bytecode | ||
| Zeile 76: | Zeile 97: | ||
* plattformunabhängig | * plattformunabhängig | ||
* effizient | * effizient | ||
* sicher | * sicher | ||
=== Kurz gesagt === | === Kurz gesagt === | ||
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).
