Behavioral interface description of an object-oriented language with futures and promises
This paper formalizes the observable interface behavior of a concurrent, object-oriented language with futures and promises. The calculus captures the core of Creol, a language, featuring in particular asynchronous method calls and, since recently, first-class futures. The focus of the paper are open systems and we formally characterize their behavior in terms of interactions at the interface between the program and its environment. The behavior is given by transitions between typing judgments, where the absent environment is represented abstractly by an assumption context. A particular challenge is the safe treatment of promises: The erroneous situation that a promise is fulfilled twice, i.e., bound to code twice, is prevented by a resource aware type system, enforcing linear use of the write-permission to a promise. We show subject reduction and the soundness of the abstract interface description.
|THEME||Software (theme 1)|
|Journal||Journal of Logic and Algebraic Programming|
|Project||Modelling and Analysis of evolutionary structures for distributed services|
Grabe, I, Abraham, E, Gruener, A, & Steffen, M. (2009). Behavioral interface description of an object-oriented language with futures and promises. Journal of Logic and Algebraic Programming, 78(7), 491–518.