VVZ API is not affiliated with ETH Zurich. Data might be outdated or incorrect. Please view the official ETHZ Vorlesungsverzeichnis for binding information.
Concurrent programming 2: Concurrent Object-Oriented Programming
Concurrent Programming 2: Concurrent Object-Oriented Programming
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 |
|
2 h weekly |
| exercise | Concurrent Programming 2: Concurrent Object-Oriented Programming |
|
1 h weekly |