Arbeiten als Student

Projekte während des Studiums

  • Diplomarbeit: Higher-Kinded Types in the Context of Subtyping, UniBwM-ID 29/2003

    Zusammenfassung:

    Typsysteme moderner funktionaler Programmiersprachen unterstützen den Software- Entwicklungsprozess maßgeblich. So verwundert es nicht, dass viel Arbeit in ihre Weiterentwicklung und Verbesserung investiert wird. Im Bereich der objektorientierten Programmierung hat es sich gezeigt, dass Erweiterung und Spezialisierung durch Bildung von Subtypen und Vererbung eine enorme Produktivitätssteigerung ermöglichen. Dies legt die Überlegung nahe, bestimmte Konzepte davon in die funktionale Welt zu übertragen.

    Bisher fehlen diese Möglichkeiten etwa in der Programmiersprache Haskell, so dass wir, ausgehend von O'Haskell, dem Ansatz Nordlanders, ausarbeiten, welche Bedeutung Subtyp-Beziehungen in Haskell haben könnten und wie sie sich realisieren lassen. Dabei stellen wir eine neue Anwendungsmöglichkeit des Haskell kind-Systems vor und erweitern mit dessen Hilfe den Ansatz Nordlanders auf sogenannte higher-kinded types. Varianzen berücksichtigen wir durch spezielle Funktions-kinds und kind-Variablen. Unser Konzept sorgt dafür, dass auch zwischen sehr komplexen, currysierten Typen Subtyp-Beziehungen aufgestellt werden können.

    Desweiteren motiviert unser kind-System eine bestimmte Form des subkinding. Erfahrungen aus Typsystemen folgend soll diese subkind-Beziehung Abschwächungen spezifischerer kinds erlauben. Daraus resultieren weitere bemerkenswerte Analogien zwischen Typen und kinds. Beispielsweise verhält sich auch der Konstruktor für Funktions-kinds kontravariant im ersten Argument, so dass bekannte Effekte auftreten.

    Unsere Ziele sind Übersichtlichkeit, Kompatibilität zu Haskell98 und eine akzeptable Komplexität. Wir werden unseren Ansatz mit anderen Ideen und bewährten Ergänzungen des Haskell Typsystems vergleichen und deren Verträglichkeit untersuchen. Letztlich stellen wir mit dieser Arbeit eine Implementierung der vorgestellten Algorithmen zur Verfügung.

  • Studienarbeit: Implementierung eines Interpreters für RATH, UniBwM-IS 04/2002

    Zusammenfassung:

    RATH ist ein Paket von Haskell-Modulen, die die Analyse von (endlichen) Relationenalgebren und bestimmten schwächeren Strukturen wie Kategorien, Allegorien und Dedekind-Kategorien unterstützen.

    In dieser Arbeit ging es nun darum, eine Art Taschenrechner für Relationenalgebren zu implementieren. Entstanden ist eine eigene kleine Programmiersprache, in der Relationen "Bürger erster Klasse" sind und sehr komfortabel manipuliert werden können.

Steffen Mazanek



ehemals
Institut für Softwaretechnologie
Fakultät für Informatik
 


Tel: +49 176 24265704
E-Mail: smazanek@steffen-mazanek.de