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.
- Process Algebra: Nondeterministic and probabilistic systems.
- Labelled transition systems: Syntax, semantics, morphism and notions of equivalence (traces, bisimilarity and its variants).
- Algebra of nondeterministic processes: CCS (syntax, semantics and equational reasoning).
- Algebra of probabilistic processes: Interactive Markov chains (syntax, semantics and equational reasoning).
- Process algebra and modal logics: The Hennessy-Milner logic.
- Process Algebra: Cyber-physical systems.
- Timed Automata: Syntax, semantics, and notions of equivalence.
- Hybrid Automata: Syntax, semantics, and notions of equivalence.
- Introduction to UPPAAL.
- Timed and hybrid process algebras.
- Process Algebra: An abstract view.
- Background: Monads and computational processes.
- Software components: Language and semantics.
- Interleaving and iteration.
Introduction to the course dynamics.
Labelled transition systems. Determinism, non determinism and probabilism. Corresponding notions of morphism. Bisimilarity.
Process algebra. Detailed study of CCS (Milner's Calculus of Communicating Systems): Operational semantics, expansion theorem; silent transitions and observational equivalences.
Process algebra: conclusion of the previous lecture. Exercises.
- Test (70%) - 28 May 2020 @ 9h
- Project-exercises (30%) - 6 June 2019 23.59h (AoE)
- Appointments (Luis): Tue, 08:00-09:00 and Thu, 18:00-20:00 (please send an email the day before)
- Appointments (Renato): Wed, 14:00-16:00 (please send an email the day before)
- Last update: 2020.02.16