Session Types with Arithmetic Refinements
Session types statically prescribe bidirectional communication protocols for message-passing processes. However, simple session types cannot specify properties beyond the type of exchanged messages. In this paper we extend the type system by using index refinements from linear arithmetic capturing i...
Gespeichert in:
Hauptverfasser: | , |
---|---|
Format: | Artikel |
Sprache: | eng |
Schlagworte: | |
Online-Zugang: | Volltext bestellen |
Tags: |
Tag hinzufügen
Keine Tags, Fügen Sie den ersten Tag hinzu!
|
Zusammenfassung: | Session types statically prescribe bidirectional communication protocols for
message-passing processes. However, simple session types cannot specify
properties beyond the type of exchanged messages. In this paper we extend the
type system by using index refinements from linear arithmetic capturing
intrinsic attributes of data structures and algorithms. We show that, despite
the decidability of Presburger arithmetic, type equality and therefore also
subtyping and type checking are now undecidable, which stands in contrast to
analogous dependent refinement type systems from functional languages. We also
present a practical, but incomplete algorithm for type equality, which we have
used in our implementation of Rast, a concurrent session-typed language with
arithmetic index refinements as well as ergometric and temporal types.
Moreover, if necessary, the programmer can propose additional type
bisimulations that are smoothly integrated into the type equality algorithm. |
---|---|
DOI: | 10.48550/arxiv.2005.05970 |