MULTILISP: a language for concurrent symbolic computation
ACM Transactions on Programming Languages and Systems (TOPLAS)
Modelling and programming in an object-oriented concurrent language ABCL/1
Object-oriented concurrent programming
Finite transition systems: semantics of communicating systems
Finite transition systems: semantics of communicating systems
POPL '77 Proceedings of the 4th ACM SIGACT-SIGPLAN symposium on Principles of programming languages
The semantics of future and an application
Journal of Functional Programming
A Theory of Distributed Objects
A Theory of Distributed Objects
A concurrent lambda calculus with futures
Theoretical Computer Science - Applied semantics
A complete guide to the future
ESOP'07 Proceedings of the 16th European conference on Programming
Ambient-Oriented programming in ambienttalk
ECOOP'06 Proceedings of the 20th European conference on Object-Oriented Programming
ASPfun: A typed functional active object calculus
Science of Computer Programming
Hi-index | 0.02 |
Futures are special kind of values that allow the synchronisation of different processes. Futures are in fact identifiers for promised results of function calls that are still awaited. When the result is necessary for the computation, the process is blocked until the result is returned. We are interested in this paper in transparent first-class futures, and their use within distributed components. We say that futures are transparent if the result is automatically and implicitly awaited upon the first access to the value; and that futures are first-class if they can be transmitted between components as usual objects. Thus, because of the difficulty to identify future objects, analysing the behaviour of components using first-class transparent futures is challenging. This paper contributes with first a static representation for futures, second a means to detect local deadlocks in a component system with first class futures, and finally extensions to interface definitions in order to avoid such deadlocks.