On understanding types, data abstraction, and polymorphism
ACM Computing Surveys (CSUR) - The MIT Press scientific computation series
SOSP '87 Proceedings of the eleventh ACM Symposium on Operating systems principles
SIGMOD '87 Proceedings of the 1987 ACM SIGMOD international conference on Management of data
Distributed programming in Argus
Communications of the ACM
Database transaction models for advanced applications
Concepts and applications of multilevel transactions and open nested transactions
Database transaction models for advanced applications
Systematic concurrent object-oriented programming
Communications of the ACM
Transactional memory: architectural support for lock-free data structures
ISCA '93 Proceedings of the 20th annual international symposium on computer architecture
Research directions in concurrent object-oriented programming
Object-oriented software construction (2nd ed.)
Object-oriented software construction (2nd ed.)
Production workflow: concepts and techniques
Production workflow: concepts and techniques
Transactional information systems: theory, algorithms, and the practice of concurrency control and recovery
Transaction Processing: Concepts and Techniques
Transaction Processing: Concepts and Techniques
Software transactional memory for dynamic-sized data structures
Proceedings of the twenty-second annual symposium on Principles of distributed computing
NESTED TRANSACTIONS: AN APPROACH TO RELIABLE DISTRIBUTED COMPUTING
NESTED TRANSACTIONS: AN APPROACH TO RELIABLE DISTRIBUTED COMPUTING
Language support for lightweight transactions
OOPSLA '03 Proceedings of the 18th annual ACM SIGPLAN conference on Object-oriented programing, systems, languages, and applications
Automatic Detection and Masking of Nonatomic Exception Handling
IEEE Transactions on Software Engineering
Exceptions and side-effects in atomic blocks
Science of Computer Programming - Special issue: Concurrency and synchronization in Java programs
The spec# programming system: an overview
CASSIS'04 Proceedings of the 2004 international conference on Construction and Analysis of Safe, Secure, and Interoperable Smart Devices
Extending JML for modular specification and verification of multi-threaded programs
ECOOP'05 Proceedings of the 19th European conference on Object-Oriented Programming
A trace semantics for long-running transactions
CSP'04 Proceedings of the 2004 international conference on Communicating Sequential Processes: the First 25 Years
Hi-index | 0.00 |
SCOOP (Simple Concurrent Object-Oriented Programming) is a model of concurrency that builds on the concept of contracts for synchronizing accesses to objects. This model is based on a pessimistic concurrency control scheme whose reservation semantics avoids race conditions altogether -- alas at the expense of parallelism. In this paper we propose to extend the initial SCOOP model by adding transactional semantics, aspiring to an increase of performance but also reliability of distributed object-oriented programs executing in the presence of partial failures.Our solution consists in programming language support for the specification of atomicity properties of particular features (routines or attributes). With such support, the application programmer is assisted by the compiler in composing atomic features, which substantially alleviates the task of constructing reliable distributed software. We investigate the impact of concepts such as nesting, inheritance, polymorphism, and contracts in such a statically typed approach, illustrated in the context of the Eiffel programming language. In particular, we depict how our solution enables the composition of atomic features from not only elementary atomic features (such as updates applied to variables which can be rolled back -- backward recovery) but also from non-atomic ones by making use of compensation mechanisms (forward recovery).