Project Details
Projekt Print View

LaST-FP: Linear Types and Session Types for Functional Programming/Linearity and Order for Typestate and Session Types

Subject Area Software Engineering and Programming Languages
Term since 2018
Project identifier Deutsche Forschungsgemeinschaft (DFG) - Project number 395068988
 
Behavioral types describe object protocols, that is, objects whose state evolves over time in a way that restricts the admissible sequences of operations on the objects. The evolution of the object's state is visible at compile time and thus amenable to verification and analysis, so that the compiler can guarantee adherence to the protocol. Behavioral types can be instantiated in many different ways to obtain different guarantees from typing, among them generic typestate and session types. Checking a protocol at compile-time becomes difficult in the presence of aliasing, when there are multiple references to the same object. Borrowing, a timely concept popularized by the programming language Rust, is an instance of the same problem where there are explicit operations to create aliases. We want to investigate a new foundation for typestate-oriented programming with borrowing, which is based on transitions instead of states. This point of view is different from most existing work which specifies the state transition of a borrowed resource by giving its input and output state as part of the function type. In contrast, our framework relies on an abstraction of the transition space in the form of an ordered partial monoid. Rather than inventing ad-hoc methods for handling borrows, we rely on the theory of ordered types, a refinement of linear type theory.
DFG Programme Research Grants
 
 

Additional Information

Textvergrößerung und Kontrastanpassung