Active object: an object behavioral pattern for concurrent programming
Pattern languages of program design 2
Object-oriented software construction (2nd ed.)
Object-oriented software construction (2nd ed.)
Eraser: a dynamic data race detector for multithreaded programs
ACM Transactions on Computer Systems (TOCS)
Ownership types for flexible alias protection
Proceedings of the 13th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Guava: a dialect of Java without data races
OOPSLA '00 Proceedings of the 15th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
ACM Computing Surveys (CSUR)
Monitors: an operating system structuring concept
Communications of the ACM
Extended static checking for Java
PLDI '02 Proceedings of the ACM SIGPLAN 2002 Conference on Programming language design and implementation
Ownership types for safe programming: preventing data races and deadlocks
OOPSLA '02 Proceedings of the 17th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Confirmation of deadlock potentials detected by runtime analysis
Proceedings of the 2006 workshop on Parallel and distributed systems: testing and debugging
Deadlock freedom through object ownership
International Workshop on Aliasing, Confinement and Ownership in Object-Oriented Programming
Beyond contracts for concurrency
Formal Aspects of Computing - Special Issue: Concurrency and Real-Time for Eiffel-like Languages
A statically verifiable programming model for concurrent object-oriented programs
ICFEM'06 Proceedings of the 8th international conference on Formal Methods and Software Engineering
A new type system for deadlock-free processes
CONCUR'06 Proceedings of the 17th international conference on Concurrency Theory
Performance analysis of SCOOP programs
Journal of Systems and Software
Concurrent object-oriented development with behavioral design patterns
ECSA'13 Proceedings of the 7th European conference on Software Architecture
Hi-index | 0.00 |
Despite the advancements of concurrency theory in the past decades, practical concurrent programming has remained a challenging activity. Fundamental problems such as data races and deadlocks still persist for programmers since available detection and prevention tools are unsound or have otherwise not been well adopted. In an alternative approach, programming models that exclude certain classes of errors by design can address concurrency problems at a language level. In this paper we review SCOOP, an existing race-free programming model for concurrent object-oriented programming, and extend it with a scheme for deadlock prevention based on locking orders. The scheme facilitates modular reasoning about deadlocks by associating annotations with the interfaces of routines. We prove deadlock-freedom of well-formed programs using a rigorous formalization of the locking semantics of the programming model. The scheme has been implemented and we demonstrate its usefulness by applying it to the example of a simple web server.