Smalltalk-80: the language and its implementation
Smalltalk-80: the language and its implementation
Optimistic recovery in distributed systems
ACM Transactions on Computer Systems (TOCS)
ACM Transactions on Programming Languages and Systems (TOPLAS)
The C++ programming language
The C programming language
Object-oriented programming with flavors
OOPLSA '86 Conference proceedings on Object-oriented programming systems, languages and applications
An introduction to Trellis/Owl
OOPLSA '86 Conference proceedings on Object-oriented programming systems, languages and applications
CommonLoops: merging Lisp and object-oriented programming
OOPLSA '86 Conference proceedings on Object-oriented programming systems, languages and applications
Programming constructs for database system implementation in EXODUS
SIGMOD '87 Proceedings of the 1987 ACM SIGMOD international conference on Management of data
Guardians and Actions: Linguistic Support for Robust, Distributed Programs
ACM Transactions on Programming Languages and Systems (TOPLAS)
What Is Object-Oriented Programming?
IEEE Software
Notes on Data Base Operating Systems
Operating Systems, An Advanced Course
ODE (Object Database and Environment): the language and the data model
SIGMOD '89 Proceedings of the 1989 ACM SIGMOD international conference on Management of data
Programming languages for distributed computing systems
ACM Computing Surveys (CSUR)
Invited talk: modular architectures for distributed and databases systems
PODS '89 Proceedings of the eighth ACM SIGACT-SIGMOD-SIGART symposium on Principles of database systems
Using histories to implement atomic objects
ACM Transactions on Computer Systems (TOCS)
Experience with the Larch Prover
Conference proceedings on Formal methods in software development
Using Larch to Specify Avalon/C++ Objects
IEEE Transactions on Software Engineering
COCS '91 Proceedings of the conference on Organizational computing systems
Introduction to the literature on object-oriented design, programming, and languages
ACM SIGPLAN OOPS Messenger
An object-based programming model for shared data
ACM Transactions on Programming Languages and Systems (TOPLAS)
Lightweight shared objects in a 64-bit operating system
OOPSLA '92 conference proceedings on Object-oriented programming systems, languages, and applications
On the correctness of orphan management algorithms
Journal of the ACM (JACM)
Transparency and reflection in distributed systems
ACM SIGOPS Operating Systems Review
Understanding the limitations of causally and totally ordered communication
SOSP '93 Proceedings of the fourteenth ACM symposium on Operating systems principles
Concurrent compacting garbage collection of a persistent heap
SOSP '93 Proceedings of the fourteenth ACM symposium on Operating systems principles
Atomic incremental garbage collection and recovery for a large stable heap
SIGMOD '93 Proceedings of the 1993 ACM SIGMOD international conference on Management of data
The design of the E programming language
ACM Transactions on Programming Languages and Systems (TOPLAS)
Composing first-class transactions
ACM Transactions on Programming Languages and Systems (TOPLAS)
A Metaobject Architecture for Fault-Tolerant Distributed Systems: The FRIENDS Approach
IEEE Transactions on Computers
Mostly-copying reachability-based orthogonal persistence
Proceedings of the 14th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Transparency and reflection in distributed systems
EW 5 Proceedings of the 5th workshop on ACM SIGOPS European workshop: Models and paradigms for distributed systems structuring
An Overview of the Arjuna Distributed Programming System
IEEE Software
Flexible Robust Programming in Distributed Object Systems
IEEE Transactions on Knowledge and Data Engineering
Implementing Atomicity in Two Systems: Techniques, Tradeoffs, and Experience
IEEE Transactions on Software Engineering
STDL - A Portable Language for Transaction Processing
VLDB '93 Proceedings of the 19th International Conference on Very Large Data Bases
A Language Framework for Multi-Object Coordination
ECOOP '93 Proceedings of the 7th European Conference on Object-Oriented Programming
Implementing Fault-Tolerant Applications Using Reflective Object-Oriented Programming
FTCS '95 Proceedings of the Twenty-Fifth International Symposium on Fault-Tolerant Computing
EURO-DAC '91 Proceedings of the conference on European design automation
Abstractions for fault-tolerant global computing
Theoretical Computer Science - Special issue: Foundations of wide area network computing
Isolation-only transactions by typing and versioning
PPDP '05 Proceedings of the 7th ACM SIGPLAN international conference on Principles and practice of declarative programming
A transactional object calculus
Science of Computer Programming
Parallel programming framework for large batch transaction processing on scale-out systems
Proceedings of the 3rd Annual Haifa Experimental Systems Conference
Hi-index | 4.10 |
The authors describe their experience adapting inheritance mechanisms to a new application domain, reliable distributed systems. They give an overview of Avalon/C++, a programming language under development that allows programmers to 'customize' the synchronization and fault-tolerance properties of data types by letting them inherit properties such as serializability and crash recovery from a library of basic types. The authors first describe the transaction model used to organize distributed computations and some relevant features of C++, and give an overview of the Avalon/C++ base hierarchy. They then describe in more detail each of the hierarchy's classes and some restrictions on their use that must be obeyed to preserve their semantic intent. An extended example illustrates a directory-type implementation that uses all three of the base classes. Related work is discussed.