ASPfun : A typed functional active object calculus

This paper provides a sound foundation for autonomous objects communicating by remote method invocations and futures. As a distributed extension of @s-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 an object language enabling a concise representation of a set of active objects interacting by asynchronous method invocations. This paper first presents the ASP"f"u"n calculus and its semantics. Then, we provide a type system for ASP"f"u"n which guarantees the ''progress'' property. Most importantly, ASP"f"u"n has been formalised; its properties have been formalised and proved using the Isabelle theorem prover and we consider this as an important step in the formalization of distributed languages. This work was also an opportunity to study different binder representations and experiment with two of them in the Isabelle/HOL theorem prover.

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

[2]  Jens Palsberg,et al.  Foundations of Object-Oriented Languages Workshop Report , 1994 .

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

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

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

[6]  de Ng Dick Bruijn,et al.  Lambda calculus notation with nameless dummies, a tool for automatic formula manipulation, with application to the Church-Rosser theorem , 1972 .

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

[8]  Erika Ábrahám,et al.  Behavioral interface description of an object-oriented language with futures and promises , 2009, J. Log. Algebraic Methods Program..

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

[10]  P. Cochat,et al.  Et al , 2008, Archives de pediatrie : organe officiel de la Societe francaise de pediatrie.

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

[12]  Tom Ridge,et al.  Operational Reasoning for Concurrent Caml Programs and Weak Memory Models , 2007, TPHOLs.

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

[14]  Ludovic Henrio,et al.  Functional Active Objects: Typing and Formalisation , 2009, FOCLASA.

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

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

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

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

[19]  P. Wilcox,et al.  AIP Conference Proceedings , 2012 .

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

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

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

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

[24]  Ohad Kammar,et al.  Algebraic foundations for effect-dependent optimisations , 2012, POPL '12.

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

[26]  Alberto Ciaffaglione,et al.  Reasoning about Object-based Calculi in (Co)Inductive Type Theory and the Theory of Contexts , 2007, Journal of Automated Reasoning.

[27]  Florian Kammüller,et al.  Implementing Privacy with Erlang Active Objects , 2010, 2010 Fifth International Conference on Internet Monitoring and Protection.

[28]  Alessandro Ricci,et al.  simpA: An agent-oriented approach for programming concurrent applications on top of Java , 2011, Sci. Comput. Program..

[29]  Furio Honsell,et al.  pi-calculus in (Co)inductive-type theory , 2001, Theor. Comput. Sci..

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

[31]  Björn Victor,et al.  Psi-calculi: Mobile Processes, Nominal Data, and Logic , 2009, 2009 24th Annual IEEE Symposium on Logic In Computer Science.

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

[33]  Daniel Hirschkoff,et al.  A fully adequate shallow embedding of the π-calculus in Isabelle/HOL with mechanized syntax analysis , 2003, Journal of Functional Programming.

[34]  Mario Tokoro,et al.  Object-oriented concurrent programming , 1987 .

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

[36]  Andrew M. Pitts,et al.  A First Order Theory of Names and Binding , 2001 .

[37]  Xavier Leroy,et al.  Proceedings of the 31st ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, POPL 2004, Venice, Italy, January 14-16, 2004 , 2004, POPL.

[38]  Denis Caromel,et al.  A theory of distributed objects - asynchrony, mobility, groups, components , 2005 .

[39]  Matthias Felleisen,et al.  A call-by-need lambda calculus , 1995, POPL '95.

[40]  Gul Agha An overview of actor languages , 1986 .

[41]  Joachim Parrow,et al.  Formalising the pi-Calculus Using Nominal Logic , 2007, FoSSaCS.

[42]  Ludovic Henrio,et al.  Transparent First-class Futures and Distributed Components , 2008, FACS.

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

[44]  Gul A. Agha,et al.  ACTORS - a model of concurrent computation in distributed systems , 1985, MIT Press series in artificial intelligence.

[45]  Florian Kammueller,et al.  Using functional active objects to enforce privacy , 2010 .

[46]  Tobias Nipkow,et al.  A Proof Assistant for Higher-Order Logic , 2002 .

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