Functional Active Objects: Typing and Formalisation

This paper provides a sound foundation for autonomous objects communicating by remote method invo- cations and futures. As a distributed extension of @z-calculus, we define ASP"f"u"n, a calculus of functional objects, behaving autonomously and communicating by a request-reply mechanism: requests are method calls handled asynchronously and futures represent awaited results for requests. This results in a well structured distributed object language enabling a concise representation of asynchronous method invoca- tions. This paper first presents the ASP"f"u"n calculus and its semantics. Secondly we provide a type system for ASP"f"u"n, which guarantees the ''progress'' property. Most importantly, ASP"f"u"n and its properties have been formalised and proved using the Isabelle theorem prover, and we consider it as a good step toward formalisation of distributed languages.

[1]  Arthur Charguéraud,et al.  Engineering formal metatheory , 2008, POPL '08.

[2]  Carolyn L. Talcott,et al.  A foundation for actor computation , 1997, Journal of Functional Programming.

[3]  Benjamin C. Pierce,et al.  Types and programming languages: the next generation , 2003, 18th Annual IEEE Symposium of Logic in Computer Science, 2003. Proceedings..

[4]  Uwe Nestmann,et al.  Mobile Objects "Must" Move Safely , 2002, FMOODS.

[5]  Lawrence Charles Paulson,et al.  Isabelle/HOL: A Proof Assistant for Higher-Order Logic , 2002 .

[6]  Joachim Niehren,et al.  Observational Semantics for a Concurrent Lambda Calculus with Reference Cells and Futures , 2007, MFPS.

[7]  Murray Cole,et al.  Bringing skeletons out of the closet: a pragmatic manifesto for skeletal parallel programming , 2004, Parallel Comput..

[8]  Denis Caromel,et al.  Asynchronous and deterministic objects , 2004, POPL '04.

[9]  Denis Caromel,et al.  ProActive: an integrated platform for programming and running applications on Grids and P2P systems , 2006 .

[10]  Carl Hewitt,et al.  A Universal Modular ACTOR Formalism for Artificial Intelligence , 1973, IJCAI.

[11]  Einar Broch Johnsen,et al.  Creol: A type-safe object-oriented model for distributed concurrent systems , 2006, Theor. Comput. Sci..

[12]  Andrew D. Gordon,et al.  Compilation and Equivalence of Imperative Objects , 1999, J. Funct. Program..

[13]  Frank S. de Boer,et al.  A Complete Guide to the Future , 2007, ESOP.

[14]  Denis Caromel,et al.  A Theory of Distributed Objects , 2005 .

[15]  Akinori Yonezawa,et al.  Modelling and programming in an object-oriented concurrent language ABCL/1 , 1987 .

[16]  Alessandro Ricci,et al.  Prototyping Concurrent Systems with Agents and Artifacts: Framework and Core Calculus , 2008, FOCLASA.

[17]  Alan Jeffrey,et al.  A distributed object calculus , 2000 .

[18]  Joachim Niehren,et al.  A concurrent lambda calculus with futures , 2005, Theor. Comput. Sci..

[19]  Ludovic Henrio,et al.  A Mechanized Model of the Theory of Objects , 2007, FMOODS.

[20]  Martín Abadi,et al.  A Theory of Objects , 1996, Monographs in Computer Science.

[21]  Robert H. Halstead,et al.  MULTILISP: a language for concurrent symbolic computation , 1985, TOPL.

[22]  Theo D'Hondt,et al.  Ambient-Oriented Programming in AmbientTalk , 2006, ECOOP.

[23]  Matthias Felleisen,et al.  The Semantics of Future and an Application , 1999, J. Funct. Program..

[24]  Alan Schmitt Safe Dynamic Binding in the Join Calculus , 2002, IFIP TCS.

[25]  Luca Cardelli,et al.  A language with distributed scope , 1995, POPL '95.

[26]  Theo D'Hondt,et al.  Ambient-oriented programming , 2005, OOPSLA '05.

[27]  Theo D'Hondt,et al.  Ambient-oriented programming in ambientTalk , 2005, OOPSLA '05.