I’ll demo a simple language of concurrent objects which explores the design space between type systems and continuous testing. In our language, finite-state programs are checked automatically for multiparty compatibility. This property of communicating automata, taken from the session types literature but here applied to terms rather than types, guarantees that no state-related errors arise during execution: no object gets stuck because it was sent the wrong message, and every message is processed.
The usual object-oriented notion of subtyping is also interpreted at the level of terms rather than types. An abstraction takes the form of a prototypical implementation against which another program can be automatically tested for behavioural conformance. Any program can act as an abstraction, and conversely every abstraction is a concrete program that can be executed.
Tue 27 OctDisplayed time zone: Eastern Time (US & Canada) change
08:30 - 10:00
NOOLLink to publication
|Inversion in Programming Language Design: The Encore Way|