@inproceedings{black86, Author = "Andrew P. Black and Norman Hutchinson and Eric Jul and Henry M. Levy", Title = "Object Structure in the Emerald System", Booktitle = "Proceedings of the First ACM Conference on Object-Oriented Programming Systems, Languages and Applications", Year = "1986", Editor = "Norman Meyrowitz", Pages = "78--86", Address = "Portland, Oregon", Month = sep } @inproceedings{herlihy87, Author = "Maurice P. Herlihy and Jeannette M. Wing", Title = "Avalon: Language Support for Reliable Distributed Systems", Booktitle = ftcs17, Year = "1987", Month = "July", Pages = "89--94", Organization = "IEEE Computer Society", Publisher = "IEEE Computer Society Press", Abstract = " Avalon is a set of linguistic constructs designed to give programmers explicit control over transaction-based processing of atomic objects for fault-tolerant applications. While Avalon is very much like Argus (by the authors' own admission), it differs in two respects. One, Avalon is based on a atomicity property called 'hybrid' atomicity while Argus is based on a local atomicity property called 'strong dynamic' atomicity. Secondly, Avalon programmers can define their own type-specific commit and abort operations for user-defined atomic data types. When a top level transaction commits (aborts) the system applies the commit (abort) operation to every object operated on by a sub-transaction of that transaction, supplying the transaction id. of the committing (aborting) top level transaction as an argument. The paper describes Avalon/C++: Avalon designed as extensions to C++. Avalon extensions to Common Lisp and Ada have also been designed. Avalon/C++ is currenly implemented on top of Camelot." }