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>Vorteile, da ein und derselbe Algorithmus nicht für jeden Datentyp implementiertwerden muss.In den verschiedenen Programmiersprachen gibt es zwei unterschiedlicheÜbersetzungsvarianten für Parametrisierung. Einerseits die heterogene, bzw. homogeneKopiervariante [OW97, S. 2] und andererseits die echte generische Variante [BH98, S.112].3.4.1 KopiervarianteBei der heterogenen Kopiervariante wird die generische Definition als Muster mitPlatzhalter für den Datentyp verstanden. Bei Bedarf, d.h. bei Instanziierung, erfolgt ingewisser Weise eine Spezialisierung des Musters, in dem dieses expandiert wird[WH97, S. 215]. Der Platzhalter wird dabei vom Übersetzer durch den richtigenDatentyp ersetzt und die Klassendefinition angelegt. Letztendlich nimmt hierbei derÜbersetzter dem Programmierer die eintönige Arbeit ab, mit Hilfe <strong>von</strong> Copy & Paste,die verschiedenen Implementierungen zu erzeugen und insbesondere auf die korrekteBenennung der Funktions- und Klassennamen zu achten. Dieser Ansatz findet u.a. beiC++ mit Hilfe <strong>von</strong> templates Verwendung und ermöglicht eine Parametrisierung <strong>von</strong>Klassen und Funktionen [WH97, S. 213]. Listing 8 zeigt ein Beispiel für die templatesFunktion <strong>von</strong> C++.// Templatetemplate void vertausche(T &v1, T &v2){T h;..h = v1; v1 = v2; v2 = h;}// Erzeugte Kopien bei der Übersetzungvoid vertausche(int &v1, int &v2){int h;h = v1; v1 = v2; v2 = h;}void vertausche(string &v1, string &v2){string h;h = v1; v1 = v2; v2 = h;}Listing 8: Heterogene Übersetzung [BH98, S. 113]Der Vorteil dieser Vorgehensweise liegt darin, dass für jeden Datentyp eine auf denDatentyp optimierte Kopie des Programmcodes angelegt wird, der sehr schnellausgeführt werden kann. Daraus resultiert letztendlich jedoch der Nachteil dieses17

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

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!