VVZ API is not affiliated with ETH Zurich. Data might be outdated or incorrect. Please view the official ETHZ Vorlesungsverzeichnis for binding information.

251-0268-00L 5 Credits BSC , DS , MSC D-INFK

Concurrent programming 2: Concurrent Object-Oriented Programming

Concurrent Programming 2: Concurrent Object-Oriented Programming

Lecturers & Examiners: Prof. em. Dr. Bertrand Meyer
VVZ CR n/a

Last Updated: 2026-02-05 15:19:54

Abstract

Presentation of advanced techniques of object-oriented programming in a concurrent environment, with a course project. See Web page for details.

Objective

This course explores the application of object-oriented concepts to the programming of concurrent applications. It reviews a variety of approaches but particularly concentrates on the Eiffel SCOOP model and on .NET mechanisms of application domains and remoting. It covers applications to multithreading, distribution, Web services and real-time, as well as formal reasoning about concurrent systems.

Content

Object Technology has interesting potential applications to concurrency, distribution, real-time and Web services. In practice, a number of obstacles have prevented O-O techniques from repeating in the concurrent world the success they have now achieved in the sequential world. This course explores the connections between the object-oriented and concurrent programming paradigms, discussing the problems that arise in the process of attempting to merge them. It reviews the main existing approaches to concurrent O-O computation, including both widely used libraries for multi-threading in Java and .NET and more theoretical frameworks, with a particular emphasis on the SCOOP model. It also provides some of the formal background for discussing the correctness of concurrent O-O applications. A course project applies the ideas to a concrete example. Overview - Concurrent and parallel programming - Distributed programming - Client-server programming - Internet, Web Services - Specific issues of embedded and real-time concurrency Approaches to concurrent programming - Notion of process, thread and application domain - Message passing versus variable sharing - Data consistency issues - Enforcing synchronization: semaphores, monitors, barriers, etc. - Java and .NET multithreading Formal models of concurrency - Computation versus observation - Interesting properties of concurrent programs - Concurrent calculi: CSP and Ada, CCS, the Pi-calculus, ... Concurrency and Object-Orientation - Language issues - Processes versus objects - Synchronizing objects The SCOOP model - Processors; handling an object - Synchronous and asynchronous feature calls - Design by Contract in a concurrent context - Separate objects and entities - Accessing separate objects; validity rules - Synchronization: waiting, reserving, preconditions as wait conditions, Wait by Necessity - Avoiding deadlock: The Business Card principle - Interrupting a reservation: duels and priorities - Mapping the processors to physical resources - Examples and applications Extensions and open problems - Real-time and embedded extensions - Timing contracts - Proofs of SCOOP programs

General Information

Language
English
Levels
BSC , DS , MSC
Frequency
Yearly recurring

Examination

Type
end-of-semester examination

Course Components

Type Title Time & Place Hours
lecture Concurrent Programming 2: Concurrent Object-Oriented Programming
  • Tue 10:15-12:00 (RZ F 21)
2 h weekly
exercise Concurrent Programming 2: Concurrent Object-Oriented Programming
  • Tue 12:15-13:00 (RZ F 21)
1 h weekly

Offered In