Programming with Symmetric Data and Codata Types

DSpace Repositorium (Manakin basiert)

Zur Kurzanzeige

dc.contributor.advisor Ostermann, Klaus (Prof. Dr.)
dc.contributor.author Binder, David
dc.date.accessioned 2024-11-15T10:11:03Z
dc.date.available 2024-11-15T10:11:03Z
dc.date.issued 2024-11-15
dc.identifier.uri http://hdl.handle.net/10900/158937
dc.identifier.uri http://nbn-resolving.de/urn:nbn:de:bsz:21-dspace-1589379 de_DE
dc.identifier.uri http://dx.doi.org/10.15496/publikation-100270
dc.description.abstract Statisch getypte funktionale Programmiersprachen sind auf zwei grundlegenden Theorien aufgebaut: Auf dem Lambdakalkül und auf der Theorie algebraischer Datentypen. Wir erkennen diese beiden Theorien in der Kerngrammatik von Lambdaabstraktionen, Funktionsanwendungen, Konstruktoren und Pattern-Matching die allen funktionalen Programmiersprachen gemeinsam ist. Funktionale Programmierer begegnen dem Versuch diese Kerngrammatik mit anderen Konstrukten wie Schnittstellen aus der objektorientierten oder Ausnahmen aus der imperativen Programmierung zu erweitern häufig mit Skepsis. Dies ist der Fall da diesen Konzepten die enge Verbindung zur Logik und Mathematik zu fehlen scheint welche dem Lambdakalkül und algebraischen Datentypen vermittels des Curry-Howard Isomorphismus zueigen ist. Fortschritte in der Logik und Beweistheorie fordern jedoch dazu heraus diese Skepsis zu überdenken. Die Analyse von logischen Konnektiven in Begriffen der Polarität erlaubt es objektorientierten Schnittstellen eine logische Interpretation als Kodatentypen zu geben, und das verbesserte Verständnis der klassischen Logik zeigt dass Kontrolloperatoren welche zur Implementierung von Ausnahmebehandlung verwendet werden Prinzipien der klassischen Logik entsprechen. Diese Dissertation zeigt dass funktionale Programmiersprachen symmetrischer und funktionaler gemacht werden können wenn diesen Fortschritten Rechnung getragen wird. Anstatt auf dem Lambdakalkül und algebraischen Datentypen aufzubauen beginnen wir mit der Theorie von algebraischen Daten- und Kodatentypen, welche den Lambdakalkül als Spezialfall einschließen. Anstatt diese zwei komplementären Sprachfragmente unabhängig voneinander zu entwerfen verwenden wir auf systematische Weise die Programmtransformationen Defunktionalisierung und Refunktionalisierung als Methodologie um die Eigenschaften beider Fragmente herzuleiten. In vollständig symmetrischen Sprachen kann Defunktionalisierung jeden Kodatentyp in einen Datentypen transformieren, und Refunktionalisierung jeden Datentyp in einen Kodatentypen. Da wir auch von der Ausdrucksstärke von Kontrolloperatoren Gebrauch machen wollen wechseln wir im zweiten Teil dieser Dissertation zu einem Termzuweisungssystem für den Sequenzenkalkül, nachdem wir im ersten Teil ein Termzuweisungssystem für das System des natürlichen Schließens verwendet haben. Wir zeigen warum der Sequenzenkalkül ein besseres System als das natürliche Schließen ist um symmetrische Programmiersprachen zu entwickeln, welche eine Behandlung von Kontrolleffekten und Ausnahmen als Konstrukte erster Klasse erfordern. Im Laufe der Zeit entwickeln sich die meisten Programmiersprachen zu einer Anhäufung unzusammenhängender Funktionalitäten; indem wir das Prinzip der Dualität anwenden können wir die Uhr ein Stück weit zurückdrehen und zumindest einige dieser angehäuften Features in ein von Symmetrie geprägtes kohärentes System bringen. de_DE
dc.language.iso en de_DE
dc.publisher Universität Tübingen de_DE
dc.rights ubt-podno de_DE
dc.rights.uri http://tobias-lib.uni-tuebingen.de/doku/lic_ohne_pod.php?la=de de_DE
dc.rights.uri http://tobias-lib.uni-tuebingen.de/doku/lic_ohne_pod.php?la=en en
dc.subject.classification Informatik , Programmiersprache , Funktionale Programmierung , Typentheorie de_DE
dc.subject.ddc 004 de_DE
dc.subject.other Codatentypen de_DE
dc.subject.other Sequenzenkalkül de_DE
dc.subject.other Defunktionalisierung de_DE
dc.subject.other Refunktionalisierung de_DE
dc.title Programming with Symmetric Data and Codata Types en
dc.type PhDThesis de_DE
dcterms.dateAccepted 2024-10-07
utue.publikation.fachbereich Informatik de_DE
utue.publikation.fakultaet 7 Mathematisch-Naturwissenschaftliche Fakultät de_DE
utue.publikation.noppn yes de_DE

Dateien:

Das Dokument erscheint in:

Zur Kurzanzeige