Skip to main content
European Commission logo
polski polski
CORDIS - Wyniki badań wspieranych przez UE
CORDIS
Zawartość zarchiwizowana w dniu 2024-06-18

Concurrency Made Easy

Mid-Term Report Summary - CME (Concurrency Made Easy)

Concurrency Made Easy (CME) is a research project funded by an ERC Advanced Grant awarded to Bertrand Meyer and the Chair of Software Engineering at ETH Zurich, Switzerland. The goal of the project is to contribute a breakthrough advance to software engineering by making concurrent programming as straightforward and reliable as other forms of programming. While using concurrency becomes more and more critical for producing software that runs efficiently on modern hardware, commonly used programming techniques, such as multithreading, remain at a low level of abstraction, making them hard to use and leading to unreliable programs with unpredictable behavior.

During the first half of the project, CME has come closer to its ambitious goal in a number of directions.

First, a model for concurrent programming, SCOOP, has been rigorously defined using formal techniques and has been expanded to include, for example, support for efficient data sharing, parallel computation, and the handling of asynchronous exceptions. These extensions make the model both more efficient and easier to use for developers in practice, while the formal techniques help to keep the model free of errors and ambiguities.

Second, starting with a comparison of SCOOP to competing programming languages for concurrency and parallelism, we improved the efficiency of the execution of SCOOP programs by introducing major improvements to its compiler and runtime. After having applied these improvements, the model executes in our benchmarks faster than other approaches that enable safe concurrent programming.

Third, the model was implemented both as a research prototype and in a production version. While the research prototype helped us with trying out new features for the compiler, the production version is stable enough to be used as part of our teaching efforts and has also been introduced to professional developers.

Fourth, we worked towards the goal of proving programs in SCOOP. Proving correctness of programs is an ambitious goal but bears great reward: knowing that a program will behave as intended when executed. While we cannot (yet) prove concurrent programs correct at this point in the project, we have laid the groundwork by further developing a prover for traditional (sequential) object-oriented programs. Extending our results to concurrent programs will be one of the major topics tackled in the second half of the project. In the meantime, we also developed approaches for testing of concurrent programs, a complementary verification technique.

Fifth, we applied the SCOOP model in the area of mechanical engineering, to support software engineering for robotics applications. Robots are composed of several actuators and sensors that should run concurrently to realize their full potential; because of the perceived difficulty, this is not yet state-of-the-art. The CME approach enables us to contribute a programming framework for robotics applications, thereby promoting the use of concurrency in robotics.

To learn more about the CME project, visit our website at http://cme.ethz.ch/ and watch the video overview at http://youtu.be/geEQ2CP7Veo.