Dynamische Programmiersprachen - Fachgebiet ...
Dynamische Programmiersprachen - Fachgebiet ...
Dynamische Programmiersprachen - Fachgebiet ...
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