Können Eigenschaften wie die Speichernutzung einer Funktion in einer abhängig typisierten Sprache ausgedrückt werden?


11

Angenommen, man möchte über Eigenschaften des Codes hinaus über Dinge wie Totalität und funktionale Reinheit nachdenken - man kümmert sich auch um den Speicherverbrauch oder die algorithmische Komplexität einer Funktion. Kann dies durch abhängige Typisierungs- und Effektsysteme erreicht werden?


2
In diesem Video bietet Brian McKenna ein Beispiel für die Codierung der Zeitkomplexität in Typen.
Anton Trunov

Antworten:


8

Ja, kann es. Konzeptionell ist es zwar nicht so schwierig, aber es wurde nicht so viel studiert. Ein Aspekt des Fachgebiets ist die Kostensemantik wie die von Guy Blelloch durchgeführten Untersuchungen .

In Anlehnung an das Video, das Anton erwähnte, ist Daniellsons Arbeit in Lightweight Semiformal Time Complexity Analysis für rein funktionale Datenstrukturen . Dies verwendet in der Tat eine Monade, um die Kosten pro Operation zu tragen. Eine ähnliche Monade auf semantischer Ebene wird in der Denotational-Cost-Semantik für funktionale Sprachen mit induktiven Typen verwendet . Hier ist ein Artikel aus dem Jahr 2016, der in Coq, einer Coq-Bibliothek zur internen Überprüfung von Laufzeiten , etwas Ähnliches tut .

Die NuPRL-Leute waren auch schon lange daran interessiert, solche Dinge zu tun. Beim Ausdrücken von Computerkomplexität in der Theorie des konstruktiven Typs , was im Grunde genommen einer Berechnung über eine strukturierte operative Semantik gleichkommt . Etwas interessanter wird es, dass Sie die Sprachsemantik in die Sprache reflektieren können. Das Beispiel im letzten Abschnitt, Abschnitt 12, der Naive Computational Type Theory veranschaulicht und diskutiert diese Art von Dingen.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.