User Tools

Site Tools


eiffel:faq:scoop

SCOOP Eiffel Concurrency mechanism

There is a tutorial on concurrent programming with SCOOP:

https://www.eiffel.org/doc/solutions/SCOOP_tutorial

It corresponds to the ACM Webinar of November 15, which is available at

https://learning.acm.org/webinars/coop.

The tutorial is hand-on: it goes with an example software system, a small simulated email client, which the reader is invited to download. The system has two versions. The first is sequential, meaning the user cannot download and read messages at the same time. The tutorial walks you through the transformation of the sequential version into a concurrent one. The transformation is actually very simple, consisting mostly of adding a few “separate” declarations and make the corresponding instructions also “separate”. In this process, the error messages of the compiler play a key role, guiding you step by step until you get a version that compiles – and, surprise!, also executes correctly.

(Note from Bertand Meyer: This general feature of Eiffel is probably not new to readers of this group: the type system and validity rules of Eiffel provide a systematic guide to getting things right, step by step, so that it is often the case that getting stuff to compile is harder than in other approaches – but then when it compiles it often is correct. Unless you like spending your nights with a debugger, better sweat over compilation than over an execution that runs but crashes or produces a mix of right and wrong results. SCOOP in my opinion is not used widely enough, including by Eiffel users, and I hope this tutorial helps spread the knowledge. There are many more SCOOP documents and examples at https://eiffel.org and http://cme.ethz.ch, but as far as I know this is the first hands-on, step-by-step introduction.)

eiffel/faq/scoop.txt · Last modified: 2019/01/20 03:41 by jonathan