The course provides a perspective on process algebra (architecture & calculi).
We start with well-established classical and probabilistic process algebras and illustrate their use in software engineering.
Given the rapid emergence of cyber-physical systems, we next give a special focus to timed and cyber-physical process algebras.
Finally, we lean on more uniform notions and techniques in process algebra, with the goal of giving theoretical foundations to the student and the tools necessary for (s)he to smoothly learn/adapt to modeling and reasoning about software composition in different computational paradigms.
This final part of the course will have a more theoretical, research-centred character, briefly presenting current research challenges.
NOTE: Video record available from the course BlackBoard platform (in contents)
T - Introduction to the course: objectives, syllabus, pragmatics. Labelled transition systems. Determinism, non determinism and probabilism. Corresponding notions of morphism. [slides]
PL - Exercises on labelled transition systems. [exercises]
T - Probabilistic transition systems. Behavioural equivalences. Simulation and bisimulation for non-deterministic systems. Bisimilarity. [slides]
PL - Exercises on bisimilarity. [exercises]
T - Introduction to process algebra. Detailed study of CCS (Milner's Calculus of Communicating Systems): Operational semantics, expansion theorem; silent transitions and observational equivalences. [slides]
PL - Exercises on bisimilarity (conclusion)