Concurrency plays an important role in programming language
design. Logic variables in the form of futures and promises
provide a means of synchronization and communication in
concurrent computation. Futures and promises, which differ from
general logic variables in that a distinction is made between
reading and writing them, have been introduced
previously. However, no formal operational semantics has been
provided for promises.
In order to formally investigate properties of futures and promises in a functional setting, a concurrent $lambda$-calculus extended with futures and promises is presented. It is intended to provide a computation model for the programming language Alice. We prove the calculus confluent, and give a proof showing strong normalization in the simply typed case without promises. Further, we introduce a type system so as to statically enforce proper use of promises in the calculus.
Awarded the Günter Hotz-Medal for outstanding Computer Science graduates.
Download PDF Show BibTeX
Login to edit