Unterschiede zwischen Compilern und Interpreten

click fraud protection

Vor dem Java und C # -Programmiersprachen erschienen, Computerprogramme nur zusammengestellt oder interpretiert. Sprachen wie Assemblersprache, C, C ++, Fortran, Pascal wurden fast immer in Maschinencode kompiliert. Sprachen wie Basic, VbScript und JavaScript wurden normalerweise interpretiert.

Was ist also der Unterschied zwischen einem kompilierten und einem interpretierten Programm?

Kompilieren

Um ein Programm zu schreiben, gehen Sie folgendermaßen vor:

  1. Bearbeiten Sie das Programm
  2. Kompilieren Sie das Programm in Maschinencodedateien.
  3. Verknüpfen Sie die Maschinencodedateien mit einem ausführbaren Programm (auch als exe bezeichnet).
  4. Debuggen oder Ausführen des Programms

Bei einigen Sprachen wie Turbo Pascal und Delphi werden die Schritte 2 und 3 kombiniert.

Maschinencodedateien sind in sich geschlossene Module des Maschinencodes, die zum Erstellen des endgültigen Programms miteinander verknüpft werden müssen. Der Grund für separate Maschinencodedateien ist die Effizienz. Compiler müssen nur neu kompiliert werden

instagram viewer
Quellcode das hat sich geändert. Die Maschinencodedateien der unveränderten Module werden wiederverwendet. Dies wird als Antragstellung bezeichnet. Wenn Sie den gesamten Quellcode neu kompilieren und neu erstellen möchten, wird dies als Build bezeichnet.

Das Verknüpfen ist ein technisch komplizierter Prozess, bei dem alle Funktionsaufrufe zwischen verschiedenen Modulen miteinander verknüpft und Speicherplätze zugewiesen werden Variablen Der gesamte Code wird im Speicher abgelegt und dann als vollständiges Programm auf die Festplatte geschrieben. Dies ist oft ein langsamerer Schritt als das Kompilieren, da alle Maschinencodedateien in den Speicher eingelesen und miteinander verknüpft werden müssen.

Dolmetschen

Die Schritte zum Ausführen eines Programms über einen Interpreter sind:

  1. Bearbeiten Sie das Programm
  2. Debuggen oder Ausführen des Programms

Dies ist ein weitaus schnellerer Prozess und hilft unerfahrenen Programmierern, ihren Code schneller zu bearbeiten und zu testen als mit einem Compiler. Der Nachteil ist, dass interpretierte Programme viel langsamer laufen als kompilierte Programme. Bis zu 5-10 mal langsamer als jede Codezeile muss erneut gelesen und dann erneut verarbeitet werden.

Geben Sie Java und C # ein

Beide Sprachen sind halb kompiliert. Sie generieren einen Zwischencode, der für die Interpretation optimiert ist. Diese Zwischensprache ist unabhängig von der zugrunde liegenden Hardware und erleichtert die Portierung Programme, die entweder in andere Prozessoren geschrieben wurden, solange ein Interpreter dafür geschrieben wurde Hardware.

Java erzeugt beim Kompilieren Bytecode, der zur Laufzeit von einer Java Virtual Machine (JVM) interpretiert wird. Viele JVMs verwenden einen Just-In-Time-Compiler, der Bytecode in nativen Maschinencode konvertiert und diesen Code dann ausführt, um die Interpretationsgeschwindigkeit zu erhöhen. Tatsächlich wird der Java-Quellcode in einem zweistufigen Prozess kompiliert.

C # wird in Common Intermediate Language (CIL) kompiliert, das zuvor als Microsoft Intermediate Language MSIL bekannt war. Dies wird von der Common Language Runtime (CLR) ausgeführt, die Teil des .NET Frameworks ist und eine Umgebung bietet, die Support-Services wie Garbage Collection und Just-In-Time-Kompilierung bereitstellt.

Sowohl Java als auch C # verwenden Beschleunigungstechniken, sodass die effektive Geschwindigkeit fast so hoch ist wie bei einer rein kompilierten Sprache. Wenn die Anwendung viel Zeit mit Ein- und Ausgaben wie dem Lesen von Festplattendateien oder dem Ausführen verbringt Datenbank Abfragen dann ist der Geschwindigkeitsunterschied kaum spürbar.

Was bedeutet das für mich?

Wenn Sie kein spezielles Bedürfnis nach Geschwindigkeit haben und die Bildrate um einige Bilder pro Sekunde erhöhen müssen, können Sie die Geschwindigkeit vergessen. C, C ++ oder C # bieten eine ausreichende Geschwindigkeit für Spiele, Compiler und Betriebssysteme.

instagram story viewer