Fault Model Design Space for Cooperative Concurrency

This paper critically discusses the different choices that have to be made when defining a fault model for an object-oriented programming language. We consider in particular the ABS language, and analyze the interplay between the fault model and the main features of ABS, namely the cooperative concurrency model, based on asynchronous method invocations whose return results via futures, and its emphasis on static analysis based on invariants.

[1]  Arnd Poetzsch-Heffter,et al.  JCoBox: Generalizing Active Objects to Concurrent Components , 2010, ECOOP.

[2]  Johan Dovland,et al.  Observable behavior of distributed systems: Component reasoning for concurrent objects , 2012, J. Log. Algebraic Methods Program..

[3]  Barry Jay Algebraic Data Types , 2009 .

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

[5]  Douglas C. Schmidt,et al.  Active object: an object behavioral pattern for concurrent programming , 1996 .

[6]  Theo D'Hondt ECOOP 2010 - Object-Oriented Programming, 24th European Conference, Maribor, Slovenia, June 21-25, 2010. Proceedings , 2010, ECOOP.

[7]  Jim Waldo,et al.  A Note on Distributed Computing , 1996, Mobile Object Systems.

[8]  Ralf Hinze,et al.  Open data types and open functions , 2006, PPDP '06.

[9]  Ivan Lanese,et al.  Fault in the Future , 2011, COORDINATION.

[10]  Joe Armstrong,et al.  Programming Erlang: Software for a Concurrent World , 1993 .

[11]  Farhad Arbab,et al.  Coordination Models and Languages , 1998, Adv. Comput..

[12]  Bernhard Beckert,et al.  Verification of Object-Oriented Software. The KeY Approach - Foreword by K. Rustan M. Leino , 2007, The KeY Approach.

[13]  Paul Hudak,et al.  Parametric type classes , 1992, LFP '92.

[14]  Jeff Kramer,et al.  Is abstraction the key to computing? , 2007, CACM.

[15]  Denis Caromel,et al.  Programming, Composing, Deploying for the Grid , 2006, Grid Computing: Software Environments and Tools.

[16]  Didier Rémy,et al.  Type checking records and variants in a natural extension of ML , 1989, POPL '89.

[17]  Piotr Nienaltowski,et al.  Practical framework for contract-based concurrent object-oriented programming , 2007 .

[18]  Julien Ponge,et al.  Better Resource Management with Java SE 7: Beyond Syntactic Sugar. , 2011 .

[19]  Brian Campbell,et al.  Amortised Memory Analysis Using the Depth of Data Structures , 2009, ESOP.

[20]  Liuba Shrira,et al.  Promises: linguistic support for efficient asynchronous procedure calls in distributed systems , 1988, PLDI '88.

[21]  Esmond Pitt,et al.  java.rmi: The Remote Method Invocation Guide , 2001 .

[22]  David Holmes,et al.  Java Concurrency in Practice , 2006 .

[23]  Martin Odersky,et al.  Scala Actors: Unifying thread-based and event-based programming , 2009, Theor. Comput. Sci..

[24]  Volker Stolz,et al.  Erlang-Style Error Recovery for Concurrent Objects with Cooperative Scheduling , 2014, ISoLA.

[25]  Ivan Lanese,et al.  Controlling Reversibility in Higher-Order Pi , 2011, CONCUR.

[26]  Jan Vitek,et al.  Mobile Object Systems Towards the Programmable Internet , 1996, Lecture Notes in Computer Science.

[27]  Flaviu Cristian,et al.  Understanding fault-tolerant distributed systems , 1991, CACM.

[28]  Parosh Aziz Abdulla,et al.  Advanced Ramsey-Based Büchi Automata Inclusion Testing , 2011, CONCUR.

[29]  Carl Hewitt,et al.  Actors: A Conceptual Foundation for Concurrent Object-Oriented Programming , 1987, Research Directions in Object-Oriented Programming.

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

[31]  Frank D. Valencia,et al.  Formal Methods for Components and Objects , 2002, Lecture Notes in Computer Science.

[32]  Akinori Yonezawa,et al.  ABCL: an object-oriented concurrent system , 1990 .

[33]  Reiner Hähnle,et al.  ABS: A Core Language for Abstract Behavioral Specification , 2010, FMCO.