HOME | ENGLISH | IMPRESSUM | KIT

Masterarbeit (abgeschlossen): LiquidRust: Refinement Types für Rust

Die Korrektheit von Software ist ein zentrales Ziel der Softwareentwicklung. Eine Mög- lichkeit die Korrektheit zu verbessern, ist das Verwenden starker und deskriptiver Typen, die Korrektheitseigenschaften als Typen kodieren, und die Kompatibilität mit dem Pro- gramm mit Hilfe von Typsystemen verifizieren. Insbesondere Refinement Types haben gezeigt, dass selbst mit einem Verifikationssystem, das auf eine entscheidbare Logik be- schränkt ist, komplizierte Eigenschaften leicht ausgedrückt und automatisch verifiziert werden können.

Bestehende Ansätze zur Anpassung von Refinement Types von funktionalen an impe- rative Sprachen haben jedoch gezeigt, dass die Existenz von veränderbaren Daten und Referenzen Kompromisse bei mindestens einer der Kerneigenschaften von Refinement Types mit sich bringt, nämlich der automatisierten, entscheidbaren Verifikation und ei- ner minimalen, leicht verständlichen Spezifikation.

Aufgabe:

In dieser Arbeit soll ein Refinement-Type-System für eine sinnvolle Untermenge von Rust erarbeitet werden, das Rusts Beschränkung auf unique mutable Referenzen ausnutzt.

Schlüsselworte

Rust, Refinement Types 

Veröffentlichungen

Veröffentlichung
LiquidRust: Refinement Types for Imperative Languages with Ownership

Betreuer

Wissenschaftliche Mitarbeiter
Sebastian Graf

Studenten

Ehemalige Studenten
Carsten Csiky