Systematic concurrent object-oriented programming
Communications of the ACM
Toward a method of object-oriented concurrent programming
Communications of the ACM
Object-oriented software construction (2nd ed.)
Object-oriented software construction (2nd ed.)
Transactional information systems: theory, algorithms, and the practice of concurrency control and recovery
The many faces of publish/subscribe
ACM Computing Surveys (CSUR)
NESTED TRANSACTIONS: AN APPROACH TO RELIABLE DISTRIBUTED COMPUTING
NESTED TRANSACTIONS: AN APPROACH TO RELIABLE DISTRIBUTED COMPUTING
Hundreds of impossibility results for distributed computing
Distributed Computing - Papers in celebration of the 20th anniversary of PODC
A type system for checking applet isolation in java card
CASSIS'04 Proceedings of the 2004 international conference on Construction and Analysis of Safe, Secure, and Interoperable Smart Devices
A trace semantics for long-running transactions
CSP'04 Proceedings of the 2004 international conference on Communicating Sequential Processes: the First 25 Years
Contract driven development = test driven development - writing test cases
Proceedings of the the 6th joint meeting of the European software engineering conference and the ACM SIGSOFT symposium on The foundations of software engineering
Enabling the runtime assertion checking of concurrent contracts for the Java modeling language
Proceedings of the 33rd International Conference on Software Engineering
Hi-index | 0.00 |
The metaphor of objects as entities encompassing both logic and state, simplifying the design and development of particularly large-scale applications, is well established in the industry. However, large applications are rarely monolithic components that carry out a single sequential task; most applications are composed of many components running in parallel. Yet, the vast majority of such applications are built in a rather ad-hoc manner, typically by making use of threading libraries and explicit synchronization through low-level mechanisms such as semaphores, locks, or monitors layered on top of objects. The Simple Concurrent Object-Oriented Programming (SCOOP) model strives for a higher-level abstraction for concurrency, naturally woven into “traditional” object-oriented constructs. Thanks to the full support for contracts and other object-oriented mechanisms and techniques — inheritance, polymorphism, dynamic binding, genericity, and agents — SCOOP offers the programmer a simple yet powerful framework for efficient development of concurrent systems. This paper presents a survey of SCOOP, including (1) the foundations of the SCOOP paradigm, its computation and synchronization models (focusing on simplicity), and our more recent developments. These are (2) an extended type system for eliminating synchronization defects (improving safety), (3) support for transactional semantics for subcomputations (enforcing atomicity), and (4) an event library for programming real-time concurrent tasks (allowing for predictability).