Compiler und Interpreter: Unterschied zwischen den Versionen

Aus FI-Wiki
Keine Bearbeitungszusammenfassung
 
(2 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)
Zeile 23: Zeile 23:


=== 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.


* 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 **beide Prinzipien kombiniert**:
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:

  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).