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.

3 DYNAMISCHE TYPISIERUNG / STATISCHE TYPISIERUNG 9<br />

Es erfolgt im Gegensatz zu einer statischen Programmiersprache wie beispielsweise Java<br />

im Quell-Code keine Typ-Deklaration der einzelnen Variablen.<br />

In einer statisch typisierten Programmiersprache wie Java ist dies, wie das folgende<br />

Beispiel zeigt, nicht möglich:<br />

Abbildung 6: Beispiel: Statische Typisierung in der Programmiersprache Java<br />

Da die Variable b bereits im Kopf des Programms statisch als integer-Variable deklariert<br />

wurde, lässt sich ihr innerhalb der main-Methode kein String-Wert mehr zuweisen.<br />

Es kommt daher zu einem Kompilierfehler. Dies lässt sich sowohl als Nachteil- aber<br />

auch als Vorteil bezüglich des Beispiels mit dynamischer Typisierung betrachten. Ein<br />

Nachteil besteht darin, daß sich der Bezeichner b nicht wiederverwerten lässt, der<br />

Vorteil, daß durch die Typprüfung verhindert werden kann, daß nicht unbeabsichtigte<br />

Wertzuweisungen auftreten können.<br />

Ein weiteres Beispiel für dynamische Typisierung findet man in der Programmiersprache<br />

Objective-C, einer hauptsächlich von Brad Cox in den 80er Jahren bei PPI, später Stepstone,<br />

um die Fähigkeit der Objektorientierung entwickelten Erweiterung der Programmiersprache<br />

C. Deren Syntax und Konzeption der objektorientierten Erweiterungen ist<br />

an Smalltalk angelehnt. Bemerkenswerte Eigenschaften von Objective-C gegenüber der<br />

Programmiersprache C++, die ebenfalls einen Ansatz einer objektorientierten Erweiterung<br />

der Programmiersprache C darstellt (der jedoch auf Simula zurückgeht), sind<br />

u.a. das späte Binden von Methoden und die Typlosigkeit, die beide auf Smalltalk<br />

zurückgehen.<br />

Im unteren Beispiel wird ein Ausschnitt einer Klasse gezeigt, die einen Knoten in einer<br />

einfach verketteten Liste darstellen soll. Dabei ist das Attribut LinkedListNode*<br />

next ein Zeiger auf das nächste Element der Liste und das Attribut id data der Inhalt

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

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!