11.07.2015 Aufrufe

Übersetzung von OO-Sprachen

Übersetzung von OO-Sprachen

Übersetzung von OO-Sprachen

MEHR ANZEIGEN
WENIGER ANZEIGEN

Erfolgreiche ePaper selbst erstellen

Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.

Kapitel 3: Übersetzung <strong>von</strong> objektorientierten <strong>Sprachen</strong>3 Übersetzung <strong>von</strong> objektorientierten <strong>Sprachen</strong>3.1 Reale und virtuelle MaschinenDie Zielsprache eines klassischen Compilers ist die Maschinensprache <strong>von</strong> einemkonkreten realen Rechnertyp, die in großer Vielfalt käuflich erworben werden können.Die Zielsprache der Übersetzung wird dadurch <strong>von</strong> dem real verwendeten Rechner,genauer noch, vom Prozessortyp, festgelegt.Die direkte Übersetzen des Programmiercodes in den <strong>von</strong> der realen Maschinebenötigten Code hat eine hohe Geschwindigkeit als Vorteil, jedoch auch Nachteile.Einerseits will man bei höheren Programmiersprachen einen Programmcode verwenden,der Befehle benötigt, die <strong>von</strong> realen Rechnern nicht zur Verfügung gestellt werden,andererseits muss der Übersetzer ständig an neue Rechnergenerationen angepasstwerden, da sich u.a. die Instruktionssätze der Rechnerarchitektur im Laufe der Zeitändern könnten [WS07, S. 4].Aus diesen Gründen verfolgt man bei höheren Programmiersprachen wie Java und C#die Strategie, einen idealisierten abstrakten Rechner als Zielsprache zu verwenden, umeine vollständige Plattformunabhängigkeit zu gewährleisten. Die virtuelle Maschine hat,wie jeder andere Rechner auch, eine Maschinenspezifikation, die Maschinenbefehle undzur Verfügung stehende Register und den Hauptspeicher festlegt [Da97, S. 27 f]. Dienachfolgende Grafik stellt die Bestandteile einer virtuellen Maschine am Beispiel derJava Virtual Machine schematisch dar.Abbildung 3: Aufbau Laufzeitumgebung am Beispiel der JVM [Mö06, S. 767]Vom Ablauf her wird der vom Programmierer erstellte Quellcode durch den Übersetzerin den sogenannten Bytecode übersetzt, der i.d.R. die meisten Befehle durch eineinziges Byte codiert [Mö06, S. 766]. Dieser Bytecode wird dann durch die virtuelleMaschine direkt interpretiert oder durch einen Just-in-Time-Compiler (JIT-Compiler) inden Code der realen Maschine übersetzt, auf der die virtuelle Maschine läuft.9

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!