Persistenz, Polymorphie und Funktionen höherer Ordnung sind grundlegende Konzepte leistungsfähiger moderner Mehrzweckprogrammiersprachen, die sich besonders zur Entwicklung datenintensiver Systeme eignen. Hinzu kommen die Systemanforderungen Offenheit und Portabilität.
In der vorliegenden Arbeit werden adäquate Methoden zur Kodegenerierung für Sprachen der genannten Kategorie bereitgestellt. Sie werden im Rahmen einer vollständigen exemplarischen Implementation beschrieben.
Als besonderes Ergebnis ist die Unterstützung rekursiver Wertbindungen, die sich nicht nur auf Funktionen, sondern auch auf Aggregate erstrecken, hervorzuheben. Letztere dürfen mit gewissen Einschränkungen sogar komplexe Wertausdrücke enthalten.
Die implementierte Sprache TL (engl.: Tycoon Language) ist ein erweiterter Lambda-Kalkül zweiter Ordnung. Insbesondere weist sie imperative Konstrukte und Subtypisierungsregeln auf. Als Zwischensprache wird TML (engl.:Tycoon Machine Language) verwendet. Sie basiert auf einem untypiserten Lamda-Kalkül mit zusätzlichen imperativen Konstrukten und Funktionsabschlüssen zur Repräsentation statischer Sichtbarkeitsbereiche. Die Maschinenkodegenerierung erfolgt indirekt, wobei C (wahlweise ANSI-C oder KR-C) als portable Zielsprache eingesetzt wird. Die Integration weiterer Zielsprachen ist aufgrund einer dedizierten Modularisierung nur wenig aufwendig.
Zur Laufzeit können dynamische Kontextwechsel zwischen interpretiertem TML-Kode, Maschinenkode und externen Routinen erfolgen.
Unter dem Begriff der Persistenten Objektsysteme werden komplexe Anwendungen zusammengefaßt, die aufgrund ihrer langen Lebensdauer, ihrer Nähe zu Endbenutzern und ihrer Sicherheitsanforderungen auf ein hohes Maß an Unterstützung durch externe Diensterbringer angewiesen sind. Beispiele kommerzieller Diensterbringer sind Objektspeicher, Transaktionsmonitore, Datenbanksysteme, Generatoren für graphische Benutzerschnittstellen oder generische Dienste zur Kommunikation zwischen verteilten Objekten. Bislang sind derartige Diensterbringer weitgehend unabhängig voneinander entwickelt worden und können nur über historisch gewachsene, schmale Schnittstellen miteinander kommunizieren.
Die Qualität zukünftiger persistenter Objektsysteme wird jedoch entscheidend durch die Flexibilität, Effizienz und Korrektheit im Zusammenspiel der Objekte dieser verschiedenartigen generischen Dienste und weniger durch die Leistungsfähigkeit einzelner isolierter Systemkomponenten bestimmt.
In diesem Buch wird im Detail die persistente polymorphe Programmierumgebung Tycoon (Typed communicating objects in open environments) beschrieben, die eine Verbesserung der Qualität persistenter Objektsysteme dadurch erreicht, daß der Anteil der stereotypen, untypisierten Programmiertätigkeiten erheblich reduziert werden kann (verglichen etwa mit C, Modula-2 oder C++ Lösungen).
Konkret bietet das Tycoon System spezielle sprachliche und architekturelle Unterstützung für die vollständig transparente Verwaltung langlebiger Daten- und Programmobjekte, die mengenorientierte Verarbeitung (benutzerdefinierter) Kollektionen, die Implementierung generischer Bibliotheken und die typsichere Anbindung externer Systemsoftware (z.B. SQL Datenbanken oder Fenstersysteme).
Das Buch beschreibt die zentralen Komponenten des Tycoon Systems nicht nur aus der Sicht des programmierenden Anwenders, sondern vermittelt auch Einblicke in die interne Systemarchitektur sowie die Algorithmen und Formalismen zur Analyse und übersetzung generischer persistenter Programme. Schließlich enthält der Text substantielle Beispiele für die Konstruktion generischer Bibliotheken und Beispiele objekt-orientierter, funktionaler und relationaler Programmiertechniken in Tycoon.