Compiler und Interpreter: Unterschied zwischen den Versionen

Aus FI-Wiki
Keine Bearbeitungszusammenfassung
 
(Eine dazwischenliegende Version desselben Benutzers wird nicht angezeigt)
Zeile 1: Zeile 1:
== Compiler und Interpreter ==
Programmiersprachen benötigen eine Übersetzung, damit der Computer den geschriebenen Quellcode ausführen kann.   
Programmiersprachen benötigen eine Übersetzung, damit der Computer den geschriebenen Quellcode ausführen kann.   
Dabei kommen zwei grundlegende Übersetzungsverfahren zum Einsatz: '''Compiler''' und '''Interpreter'''.
Dabei kommen zwei grundlegende Übersetzungsverfahren zum Einsatz: '''Compiler''' und '''Interpreter'''.


=== Was ist ein Compiler? ===
== 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.
Ein Compiler übersetzt den gesamten Quellcode '''auf einmal''' in eine andere Form – meist in Maschinencode oder wie in Java in Bytecode.


Zeile 22: Zeile 20:
* Fehler werden schon beim Kompilieren entdeckt
* Fehler werden schon beim Kompilieren entdeckt


=== Was ist ein Interpreter? ===
== Was ist ein Interpreter? ==
Ein Interpreter übersetzt und führt den Quellcode '''Schritt für Schritt zur Laufzeit''' aus.
Ein Interpreter übersetzt und führt den Quellcode '''Schritt für Schritt zur Laufzeit''' aus.


Zeile 40: Zeile 38:
* tendenziell langsamer als kompilierter Code
* tendenziell langsamer als kompilierter Code


=== Vergleich: Compiler vs. Interpreter ===
== Vergleich: Compiler vs. Interpreter ==
{| class="wikitable" style="width:100%; text-align:center;"
{| class="wikitable" style="width:100%; text-align:center;"
! Merkmal
! Merkmal
Zeile 67: Zeile 65:
|}
|}


=== Wie arbeitet Java? ===
== 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? ==
Java nutzt '''beide Prinzipien kombiniert''':
Java nutzt '''beide Prinzipien kombiniert''':


Zeile 78: Zeile 97:
* sicher
* sicher


=== Kurz gesagt ===
== Kurz gesagt ==
* Ein '''Compiler''' übersetzt den gesamten Quellcode vor der Ausführung.   
* Ein '''Compiler''' übersetzt den gesamten Quellcode vor der Ausführung.   
* Ein '''Interpreter''' führt den Code Zeile für Zeile direkt aus.   
* Ein '''Interpreter''' führt den Code Zeile für Zeile direkt aus.   
* Java kombiniert beide Verfahren (Compiler → Bytecode → JVM).
* Java kombiniert beide Verfahren (Compiler → Bytecode → JVM).

Aktuelle Version vom 5. Januar 2026, 16:19 Uhr

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:

  1. Compiler (javac) → erzeugt Bytecode
  2. 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).