Search This Blog


SCOOP: Concurrent Programming Made Easy

This 11 pages paper by Piotr Nienaltowski, Volkan Arslan and Bertrand Meyer is a very concise introduction about the SCOOP model that I commented on my previous post. Click here to get a copy of the paper.

Abstract: "The SCOOP model (Simple Concurrent Object-Oriented Programming) provides a simple yet very powerful mechanism for parallel computation. The model takes advantage of the inherent concurrency implicit in object-oriented programming to provide programmers with a simple extension enabling them to produce paralle applications with little more effort than sequential ones. SCOOP is applicable to many different physical setups, from multiprocessing to multithreading, highly parallel processors for scientific computation, distributed computation, and Web services. In this article, we present the basic concepts of the model and show how easily parallel and distributed computation can be achieved in a way that preserves the full power of all object-oriented techniques. Several programming examples illustrate the discussion."

  • Based on the concepts of Design by Contract
  • Additional keyword to the language: separate
  • Minimalist mechanism
  • Full use of object-oriented techniques
  • Avoids deadlocks
  • 2-level architecture: platform-independent (SCOOP) and platform-specific (low-level concurrency/threading mechanism)
  • Many processors (abstractions) provide threads of control for the application
  • The separate keyword basically indicates that the object, class or function will be handled by a different processor
  • There are Separateness Consistency Rules
  • Preconditions that involve separated entities force the client object to wait until they are satisfied
  • Lockings are automatic and controlled by the mechanism
  • Separated calls are scheduled to when the necessary locks are acquired and wait conditions are satisfied
  • Can handle distributed computation when processors are mapped to different physical resources
  • Distribution is configured through the Concurrency Control File but only done at runtime
Your comments are welcome.

1 comment:

creatine said...

SCOOP starts from the observation that the basic framework of object-oriented computation lends itself naturally to a concurrent extension. Objects are independent entities with their own state and controlled access to their mechanisms. Contrary to most other approaches to concurrent O-O programming, we do not attempt to make objects "active", an approach that quickly lead to contradictions such as the "inheritance anomaly". Instead, SCOOP makes explicit the notion of processor, implicit in usual views of computation. Programs apply actions to objects using processors.