[I2 logo] [RWTH logo] MOVES: Software Modeling and Verification
(Informatik 2)
Computer Science / RWTH / I2 / Teaching / Course / PCS / 2001
Printer-friendly

Programming Concurrent Systems

Fall 2001

Study programmes: Diplomstudiengang Informatik, Master Programme Software Systems Engineering

Overview

This two-hour course provides an introduction to distributed programming techniques. It is tailored to Erlang, a concurrent functional language which is designed for implementing distributed and fault-tolerant telecommunication software. Besides the basic programming constructs, concepts for managing networks of processes, for asynchronous communication, and for automatic recovery from errors will be discussed. Moreover we present approaches to the formal verification of correctness properties.

Schedule

Lecture: Thursday, 10:00-11:30am, AH IV (on January 24th, 2002: AH VI)

Date Topics Exercises Solutions
18-10-2001 Preliminaries and Introduction - -
25-10-2001 Erlang at a Glance and Sequential Erlang Assignment 1 1&2 3 4
08-11-2001 Formal Semantics and Semantics of Sequential Erlang Assignment 2 5 6-8
15-11-2001 Concurrent Erlang and Semantics of Concurrent Erlang Assignment 3 9 10 11&12
22-11-2001 Properties of Concurrent Erlang Systems Assignment 4 13a 13b 14&15
29-11-2001 Interleaving Simplified Assignment 5 16-18
06-12-2001 Case Study: the Resource Locker Assignment 6 19 21
13-12-2001 Concurrency in Java: Threads Assignment 7 ?
20-12-2001 Distributed Erlang - -
10-01-2002 Distributed Programming Techniques and Distributed Data Assignment 8 ?
17-01-2002 Expression Error Handling Assignment 9 ?
24-01-2002
(AH VI!)
Process Error Handling Assignment 10 ?
31-01-2002 Programming Robust Applications Assignment 11 ?
07-02-2002 Application: Telephony Systems - -
14-02-2002 Preparation of Exams and Summary: Syntax and Semantics of Erlang - -

Exams

please see this slide

Resources

  • G. Coulouris, J. Dollimore, T. Kindberg: Distributed Systems: Concepts and Design, 3rd edition, Addison-Wesley, 2001
    (Online material is available here.)
    Covers the introductory parts of the lecture where general characteristics and concepts of distributed systems are discussed.
  • J. Armstrong, R. Virding, M. Williams: Concurrent Programming in Erlang, 2nd edition, Prentice Hall, 1996
    (The first part is available here.)
    Forms the basis of the practical parts of the lecture: the syntax and the intuitive meaning of programs, concrete programming techniques, and implementation aspects.
  • L.-Å. Fredlund: A Framework for Reasoning about Erlang Code, PhD thesis, Royal Institute of Technology (KTH), Stockholm, Sweden
    (Available here.)
    Contains the theoretical material of the lecture, which is presented in Section 3 of the thesis: transition systems, the expression-level and system-level rule systems, and their properties.
  • M. Felleisen, R. Hieb: The Revised Report on the Syntactic Theories of Sequential Control and State, Rice University Technical Report No. 100-89
    (Available here.)
    Introduces the concept of reduction contexts, which is exploited in the lecture to simplify the presentation of the structural operational rules.
  • M. Castro: Erlang in Real Time
    Concentrates on the real-time aspects of the language. Not directly considered in the lecture.
  • Commercial Erlang/OTP web page
  • Open Source Erlang web page
  • Erlang installation at the Computer Science workstation pool

Valid HTML 4.01 Strict! Valid CSS!