|
Concurrent Object-Oriented Programming
|
| Announcements | Description | Schedule | Grading | Textbooks | Contacts |
| 06.06.2007 | New version of SCOOP for EiffelStudio 5.7 for Windows XP is
available. For installation please read the file Readme.txt in the root folder of the unzipped file. With this new version it is necessary to update your environment variable "Path" to include the following entry: %ISE_EIFFEL%\studio\spec\windows\bin; |
|
| 05.06.2007 | The exam will be held during the lecture on 12 June. |
|
| 19.05.2007 | New version of SCOOP for EiffelStudio 5.7 for Windows XP is
available. For installation please read the file Readme.txt in the root folder of the unzipped file. With this new version the two environment variables $EIFFEL_SRC and $SCOOPLI are not anymore necessary. |
|
| 30.04.2007 | No lecture and exercises on 01.05.2007 |
|
| 25.04.2007 | New version of SCOOP for EiffelStudio 5.7 for Windows XP is
available |
|
| 18.04.2007 | Final Project document
and SCOOP project examples document are online |
|
| 03.04.2007 | Lecture SCOOP: overview (part 2) updated |
|
| 27.03.2007 | First two chapters of Dr. Piotr Nienaltowaski's thesis is available Paper "Static Detection of Atomicity Violations in Object-Oriented Programs" of Christoph von Praun and Thomas Gross is available |
|
| 21.03.2007 | Please note the new location and time of the exercise sessions Exercises: Tuesdays 12.15 - 13.00, RZ F21 |
|
| 20.03.2007 | Register for the course: Please send an email To: Volkan.Arslan (at) inf.ethz.ch Subject: Concurrency Course Participant Content:
|
Concurrent Object-Oriented Programming
Course code:
251-0268-00
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 word. 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 applicatons.
Overview
Approaches to concurrent programming
Formal models of concurrency
Concurrency and Object-Orientation
The SCOOP model
Extensions and open problems
The course assumes good knowledge of object-oriented principles and programming techniques. Experience with Eiffel and with concurrent programming is helpful but not required.
The goal is to provide students with solid knowledge of:
The course is split into two major parts:
Weekly schedule
Office hours: By appointment, RZ J3
Lectures
| Tuesday 20 March | Course overview SCOOP: overview (part 1) |
| Tuesday 27 March | SCOOP: overview (part 2) |
| Tuesday 03 April | SCOOP: computational model - processors, synchronous and asynchronous feature calls, synchronisation. |
| Tuesday 10 April | COOP: foundations of concurrency - tasks, threads, preemption, scheduling, concurrency, parallelism, distribution. |
| Tuesday 17 April | COOP: Classic Approaches to Concurrent Programming - Definition of concurrent programming, notion of process, process representation; shared variable based synchronization and communication (busy waiting, semaphores) |
| Tuesday 24 April | COOP: Classic Approaches to Concurrent Programming - Shared variable based synchronization and communication (semaphores, conditional critical regions, monitors, protected objects, synchronized methods) |
| Tuesday 8 May | COOP: Classic Approaches to Concurrent Programming - Message-based synchronization and communication (process synchronization, process naming, selective waiting) |
| Tuesday 15 May | SCOOP: Traitors, validity rules, type system |
| Tuesday 22 May | SCOOP: type system |
| Tuesday 29 May | SCOOP: type system, expanded types, false traitors |
| Tuesday 05 June | SCOOP: flexible locking and genericity |
| Tuesday 12 June | SCOOP: inheritance and contracts |
| Tuesday 19 June | SCOOP: inheritance and polymorphism, agents |
Exercises
| Tuesday 20 March | Eiffel and EiffelStudio crash course Eiffel Hello world example   |
| Tuesday 27 March | SCOOP version of EiffelStudio 5.7 for Windows XP is
available Counter example in SCOOP   |
| Tuesday 03 April |
Extended counter example in SCOOP   |
| Tuesday 10 April |
Producer - Consumer example in SCOOP   |
| Tuesday 17 April |
Final Project: "SCOOP project: Implementation of concurrent applications" SCOOP project examples   |
| Tuesday 24 April |
Exercise 6: Synchronisation mechanisms, threads and condition variables in EiffelThread and its
solution Race example in EiffelThread (Task 2)   |
| Tuesday 8 May |
Producer-Consumer solution of Exercise 6, task 3   |
| Tuesday 15 May |
Separateness Consistency rules example   |
| Tuesday 22 May |
See lecture of 22 May   |
| Tuesday 29 May |
See lecture of 29 May   |
| Tuesday 05 June |
See lecture of 05 June   |
| Tuesday 12 June |
Process example   |
| Tuesday 05 June |
See lecture of 19 June   |
Important : No Testat is delivered for the course. The only way to get a grade is to take the written exam and submit the project. This applies regardless of your department or status.
Gul Agha, Peter Wegner, Akinori Yonezawa (Editors): Research Directions in Concurrent Object-Oriented Programming. MIT Press, 1993.
Gregory R. Andrews: Foundations of Multithreaded, Parallel, and Distributed Programming. Pearson Addison Wesley, 1999.
Mordechai Ben-Ari: Principles of Concurrent and Distributed Programming. Prentice Hall, 1990.
Howard Bowman and John Derrick (Editors): Formal methods for distributed processing: a survey of object-oriented approaches. Cambridge University Press, 2001.
Bertrand Meyer: Object Oriented Software Construction, second edition, Chapter 30, Prentice Hall, 1997.
Piotr Nienaltowski, Volkan Arslan, Bertrand Meyer: Concurrent object-oriented programming on .NET, IEE Proceedings Software, Special Issue on ROTOR, vol. 150, no. 5, 308-314, October 2003.
Piotr Nienaltowski, Bertrand Meyer: Contracts for concurrency, CORDIE'06, July 2006, York, UK.
Piotr Nienaltowski: Flexible locking in SCOOP, CORDIE'06, July 2006, York, UK.
Volkan Arslan, Bertrand Meyer:
Asynchronous Exceptions in Concurrent Object-Oriented Programming,
CORDIE'06, July 2006, York, UK.
Last modified: 19.06.2007 by Volkan Arslan