This course gives fundamental knowledge on the concurrent computation using formal systems such as Milner's CCS (Calculus of communicating systems) and pi-calculus. The instructor explains several basic notions such as structural congruence and bi-simulation on the pi-calculus. Then, he proceeds to the pi-calculus, which is an extension of CCS by adding name-passing mechanism. The expressiveness of the pi-calculus is explained giving a translation of the lambda calculus and the one of an object-oriented programming language. These formal systems give us the foundation of reasoning of concurrency.
The aim of this course is for students to understand how to describe concurrent notions in the formal systems.
By the end of this course, students will be able to
1) Understand how to formalize the concurrency.
2) Describe concurrent mechanisms formally.
Concurrency, CCS, structural congruence, bi-simulation, pi-calculus, lambda calculus, object oriented language, deadlock
✔ Specialist skills | Intercultural skills | Communication skills | ✔ Critical thinking skills | ✔ Practical and/or problem-solving skills |
The course mainly consists of lectures
Course schedule | Required learning | |
---|---|---|
Class 1 | Introduction: concurrent system and its formalization | Specified in the class. |
Class 2 | Formalization of concurrent systems using state transition diagrams | Specified in the class. |
Class 3 | Sequential processes and bisimulation | Specified in the class. |
Class 4 | Concurrent processes in CCS: structural congruence and reaction rules | Specified in the class. |
Class 5 | Labelled transitions and strong equivalence | Specified in the class. |
Class 6 | Observation equivalence in CCS | Specified in the class. |
Class 7 | Examples in CCS | Specified in the class. |
Class 8 | Syntax and structural operational semantics of the pi-calculus | Specified in the class. |
Class 9 | Applications of the pi-calculus | Specified in the class. |
Class 10 | Object-oriented programming in the pi-calculus | Specified in the class. |
Class 11 | Commitments and strong bi-simulation | Specified in the class. |
Class 12 | Observation Equivalence of the pi-calculus | Specified in the class. |
Class 13 | Examples of description in the pi-calculus | Specified in the class. |
Class 14 | Several formal systems for the concurrent computation | Specified in the class. |
Class 15 | Review | Specified in the class. |
Communicating and mobile systems: the pi-calculus, Robin Milner, Cambridge University Press
The Pi-Calculus: a theory of mobile processes, David Sangiorgi and David Walker, Cambridge University Press
Reports(50%) and final examination(50%)
Basic knowledge of automaton theory and computational theory such as the lambda calculus is required.
The topics given in the lecture can be replaced by the other recent ones.