06.11.2013 Aufrufe

Dynamische Programmiersprachen - Fachgebiet ...

Dynamische Programmiersprachen - Fachgebiet ...

Dynamische Programmiersprachen - Fachgebiet ...

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.

2 WAS VERSTEHT MAN UNTER BINDEN ? 7<br />

das Hinzufügen eines Strings-Objektes in das verkettete Listen-Objekt, das verkettete<br />

Listen-Objekt geändert, d.h. der referenzierte Wert, also das Listen-Objekt LinkedList<br />

ändert sich. Es hat hier also die Veränderung eines referenzierten Wertes stattgefunden,<br />

eine Mutation.<br />

2.2 Zeitpunkt des Bindens<br />

Prinzipiell existieren zwei Zeitpunkte, an denen eine Referenz an ein Objekt gebunden<br />

werden kann. Das ist zum Einen, während der Kompilierung eines Programms und<br />

zum Anderen während der Laufzeit eines Programms. Die erste Möglichkeit, also Binden<br />

während der Kompilierung, wird auch als statische Bindung oder auch als frühes<br />

Binden (engl. static binding bzw. early binding), die zweite Möglichkeit, während der<br />

Laufzeit, als dynamisches oder spätes Binden (engl. dynamic binding bzw. late binding)<br />

bezeichnet.<br />

Unterschiede liegen für den Programmierer vor allen Dingen in der höheren Flexibilität<br />

und besseren Erweiterbarkeit bei Verwendung von dynamischen Binden, da während der<br />

Ausführung eines Programms Veränderungen möglich sind. Teilweise muss jedoch bei<br />

Lösungen die dynamisches Binden verwenden auch mit einer schlechteren Performanz<br />

gerechnet werden, da da der Compiler während der Kompilierung aufgrund der dynamischeren<br />

Natur des Programms weniger Annahmen treffen kann und damit weniger<br />

Möglichkeiten zur Optimierung besitzt.<br />

Um spätes Binden zu erreichen müssen verschiedene Sprachmittel eingesetzt werden.<br />

Diese unterscheiden sich je nachdem ob man eine dynamische Programmiersprache, wie<br />

beispielsweise Smalltalk oder Python, oder eine statische, wie beispielsweise Java oder<br />

C++, verwendet. Bei der Verwendung von dynamischen <strong>Programmiersprachen</strong> lässt<br />

sich spätes Binden durch die Anwendung der dynamischen Typisierung als Sprachmittel<br />

erreichen, während man bei den statischen <strong>Programmiersprachen</strong> das späte Binden<br />

mittels polymorphen Variablen bzw. Methoden ermöglicht werden kann.<br />

In den nachfolgenden zwei Abschnitten soll daher zuerst die Verwendung von dynamischer<br />

Typisierung und polymorpher Variablen gezeigt werden. In dem darauf folgenden<br />

Abschnitt soll dann gezeigt werden, wie man mit Hilfe dieser Sprachmittel spätes Binden<br />

in den unterschiedlichen <strong>Programmiersprachen</strong> ermöglichen kann.<br />

2.2 Zeitpunkt des Bindens

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

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!