Concurrent Object-Oriented Programming
2 April 2004:
Concurrent Object-Oriented Programming
Course code: 251-0268-00
This course will survey the multifarious proposals that employ object-oriented languages and technologies for concurrent and distributed programming. Both theoretical and practical aspects will be explored, with an emphasis on language-related issues, such as the comparison of programming primitives, and the study of means employed to reason about programs (like type systems, for example). After an exhaustive overview, we will provide a detailed description of the SCOOP model for object-oriented concurrent programming.
The course assumes good knowledge of object-oriented principles and techniques. Experience with Eiffel and with concurrent programming is helpful but not required.
The goal is to provide students with solid knowledge of:
Topics in Concurrency, 251-0270-00, Wednesday 16.00 - 17.00 IFW D42.
Office hours: Thursday 14.15-16.00, or by appointment, RZ-J3.
|Tuesday 30 March||Introduction; Essential definitions and overview of programming paradigms. Slides in pdf 1up, 3up, 6up, ppt.|
|Tuesday 6 April||Language primitives for task creation and communication. Slides in pdf 1up, 3up, 6up, ppt.|
|Tuesday 13 April||A SCOOP primer. Slides in pdf 1up, 3up, 6up, ppt.|
|Tuesday 20 April||Synchronization in concurrent O-O programs. Slides
in pdf 1up, 3up, 6up, ppt.
|Tuesday 27 April||Inheritance anomaly in concurrent objects. Slides in pdf 1up, 3up, 6up, ppt.|
|Tuesday 4 May||Turorial on formal models: the Lambda-Calculus
|Tuesday 11 May||CCS principles and tutorial on formal models (end).
Slides in pdf 1up, 3up, 6up ppt,
|Tuesday 18 May||Modeling in the Pi-Calculus (beginning).
|Tuesday 25 May||Tools for the Project and Modeling in the Pi-Calculus
(end). Slides in pdf 1up, 3up, 6up, ppt.
|Tuesday 1 June||Encodings of concurrent and distributed objects
in the Pi-Calculus.
|Tuesday 8 June||SCOOP
|Tuesday 15 June||SCOOP 2 (see slide of lecture SCOOP 1).
|Tuesday 22 June||Introduction
to embedded and real-time systems.
|Tuesday 29 June||Advanced topics and project review.
|Tuesday 30 March||No session this week.|
|Tuesday 6 April||The design phase of distributed applications. Topic|
|Tuesday 13 April||Enforcing data consistency using message-passing primitives. Topic, Solution|
|Tuesday 20 April||Debugging of DSM and implementation of a termination
algorithm. Topic, software, solution.
|Tuesday 27 April||Writing examples relying on variable-sharing and synchronization in Ada 95.|
|Tuesday 4 May||Requeuing in Ada 95. Topic and solution of
both Ada95 exercises.
|Tuesday 11 May||CCS and principles of operational semantics. Topic
|Tuesday 18 May||Encoding of objects in the Lambda-Calculus. Topic|
|Tuesday 25 May||Tools for the project.
|Tuesday 1 June||Tools for the project (end).
|Tuesday 8 June||Encodings and reductions in the pi-calculus.
|Tuesday 15 June||Encodings and reductions in the pi-calculus.
|Tuesday 22 June||Proofs of concurrent objects configurations.|
|Tuesday 29 June||Review of projects.|
Important : No "Testat" is delivered or "mündliche Prüfung" provided for this course. The only way to get a grade is to take the exam and the project. This applies regardless of your department or status.
Howard Bowman and John Derrick (Editors): Formal methods for distributed processing: a survey of object-oriented approaches. Cambridge University Press, 2001.
Gul Agha, Peter Wegner, Akinori Yonezawa (Editors): Research Directions in Concurrent Object-Oriented Programming. MIT Press, 1993.
Mordechai Ben-Ari: Principles of Concurrent and Distributed Programming. Prentice Hall, 1990.
Gregory R. Andrews:Foundations of Multithreaded, Parallel, and Distributed Programming. Pearson Addison Wesley, 1999.
Bertrand Meyer: Object Oriented Software Construction, second edition, Chapter 30, Prentice Hall, 1997.