Werttypen in objektorientierten Programmiersprachen

Objektorientierung als Unterparadigma der imperativen Programmierung ist inhärent zustandsorientiert: Jedes Objekt verfügt über einen – gekapselten – Zustand. Das prädestiniert objektorientierte Programmiersprachen zur Abbildung von "Gegenständen der realen Welt" und ihren Änderungen im La...

Ausführliche Beschreibung

Gespeichert in:
Bibliographische Detailangaben
1. Verfasser: Ritterbach, Beate
Format: Dissertation
Sprache:ger
Schlagworte:
Online-Zugang:Volltext bestellen
Tags: Tag hinzufügen
Keine Tags, Fügen Sie den ersten Tag hinzu!
Beschreibung
Zusammenfassung:Objektorientierung als Unterparadigma der imperativen Programmierung ist inhärent zustandsorientiert: Jedes Objekt verfügt über einen – gekapselten – Zustand. Das prädestiniert objektorientierte Programmiersprachen zur Abbildung von "Gegenständen der realen Welt" und ihren Änderungen im Laufe der Zeit. Dagegen sind sie schwach bei der Umsetzung von Werten und zustandsloser Verarbeitung. Diese Arbeit präsentiert ein Sprachmodell, das Zustand und Zustandslosigkeit gleichermaßen unterstützt und am Typsystem verankert: Es unterscheidet zustandsbehaftete Objekttypen und zustandslose Werttypen. Die Arbeit legt einen an MacLennan angelehnten Wertbegriff zugrunde, der Werte anhand ihres Verhaltens definiert. Sie zeigt, dass die kennzeichnenden Merkmale von Werten – kein Verändern, kein Erzeugen, Seiteneffektfreiheit und referentielle Transparenz – einander ergänzen und zusammen genommen Zustandslosigkeit charakterisieren. Diese implementierungsunabhängige Definition beschreibt Werte als abstraktes Konzept, grenzt sie gegenüber Objekten ab und bildet das Fundament der Arbeit. Werttypen erfordern eine dedizierte Sprachunterstützung. Die Arbeit schlägt vor, Werttypen und Objekttypen auf programmiersprachlicher Ebene zu trennen und verschiedene Typkonstruktoren für sie vorzusehen. Sie nimmt das objektorientierte Paradigma als Ausgangsbasis und fokussiert auf die Gestaltung eines Typkonstruktors für Werttypen. Dieser kann – in einem prinzipiell zustandsbehafteten Umfeld – Werte klar abbilden, ihre Zustandslosigkeit sicherstellen und ihre Programmierung vereinfachen. Die Forschungssprache VJ, eine Erweiterung von Java, belegt die Machbarkeit des Ansatzes und veranschaulicht die Wirkungsweise eines Typkonstruktors für Werttypen innerhalb einer objektorientierten Sprache. Ein wesentlicher Nutzen der Wert-/ Objekt-Trennung liegt in ihrer Auswirkung auf andere Sprachkonstrukte: sie führt zu Umgestaltungen, die potentielle Fehlerquellen heutiger objektorientierter Sprachen beseitigen. Beispielsweise ermöglicht sie die Verschmelzung von Wertgleichheit und Objektidentität zu einem einheitlichen Konzept und vermeidet damit viele Schwierigkeiten objektorientierter Sprachen im Umgang mit Gleichheit. Sie erlaubt es auch, Werttypen und Objekttypen mit unterschiedlichen Mechanismen für das Subtyping auszustatten und liefert damit neue Lösungsansätze für etliche bekannte Probleme der Objektorientierung, z. B. das Kreis-Ellipsen-Dilemma oder die Typisierung binärer Methoden. Der Grund