| Entrambe le parti precedenti la revisioneRevisione precedenteProssima revisione | Revisione precedente |
| magistraleinformatica:mpp:start [10/09/2026 alle 07:56 (12 giorni fa)] – [Lectures (1st part)] Roberto Bruni | magistraleinformatica:mpp:start [15/09/2026 alle 13:06 (6 giorni fa)] (versione attuale) – [Lectures (1st part)] Roberto Bruni |
|---|
| ====== Models for Programming Paradigms ====== | ====== Models for Programming Paradigms ====== |
| |
| {{:magistraleinformatica:mpp:logo-van-gogh-like.png?150 | }} | {{:magistraleinformatica:mpp:immagine_codex_10_set_2026_10_36_38.png?150 | }} |
| |
| **MPP 2026/27 (0077A, 9 CFU)** | **MPP 2026/27 (0077A, 9 CFU)** |
| |
| ^ N ^ Date ^^ Time ^ Room ^ Lecture notes ^ Links ^ | ^ N ^ Date ^^ Time ^ Room ^ Lecture notes ^ Links ^ |
| | 1 | Tue | 15/09 | 11:00-13:00 | PS4 | 01 - Introduction to the course | | | | 1 | Tue | 15/09 | 11:00-13:00 | PS4 | {{ :magistraleinformatica:mpp:2026-09-15_-_mpp_-_01_-_intro.pdf |01 - Introduction to the course}} | | |
| | 2 | Wed | 16/09 | 11:00-13:00 | H | 02 - Preliminaries:\\ //from syntax to semantics, the role of formal semantics, SOS approach, small-step operational semantics, big-step operational semantics, denotational semantics, compositionality principle, normalisation, determinacy, consistency, equivalence, congruence// | | | | 2 | Wed | 16/09 | 11:00-13:00 | H | 02 - Preliminaries:\\ //from syntax to semantics, the role of formal semantics, SOS approach, small-step operational semantics, big-step operational semantics, denotational semantics, compositionality principle, normalisation, determinacy, consistency, equivalence, congruence// | | |
| | 3 | Fri | 18/09 | 14:00-16:00 | C1 | Exercises\\ \\ 03 - Unification:\\ //inference process, signatures, substitutions, most general than relation, unification problem, most general unifiers, unification algorithm// | | | | 3 | Fri | 18/09 | 14:00-16:00 | C1 | Exercises\\ \\ 03 - Unification:\\ //inference process, signatures, substitutions, most general than relation, unification problem, most general unifiers, unification algorithm// | | |
| | 11 | Wed | 07/10 | 11:00-13:00 | H | 08c - Partial orders and fixpoints (Immediate Consequence Operator):\\ //McCarthy's 91 function, recursive definitions of partial functions as logical systems, immediate consequences operator, set of theorems as fixpoint//\\ \\ 09 - Denotational semantics:\\ //lambda-notation, free variables, capture-avoiding substitutions, alpha-conversion, beta rule, conditionals, denotational semantics of commands, fixpoint computation// | | | | 11 | Wed | 07/10 | 11:00-13:00 | H | 08c - Partial orders and fixpoints (Immediate Consequence Operator):\\ //McCarthy's 91 function, recursive definitions of partial functions as logical systems, immediate consequences operator, set of theorems as fixpoint//\\ \\ 09 - Denotational semantics:\\ //lambda-notation, free variables, capture-avoiding substitutions, alpha-conversion, beta rule, conditionals, denotational semantics of commands, fixpoint computation// | | |
| | 12 | Fri | 09/10 | 14:00-16:00 | C1 | 10 - Consistency:\\ //denotational equivalence, congruence, compositionality principle, consistency of commands, correctness, completeness// | | | | 12 | Fri | 09/10 | 14:00-16:00 | C1 | 10 - Consistency:\\ //denotational equivalence, congruence, compositionality principle, consistency of commands, correctness, completeness// | | |
| | 13 | | | | | Exercises:\\ //CPO, continuous functions, IMP// | | | | 13 | Tue | 13/10 | 11:00-13:00 | PS4 | Exercises:\\ //CPO, continuous functions, IMP// | | |
| | 14 | | | | | 11a - Haskell:\\ //an overview, Haskell ghci, basics, tuples, lists, list comprehension, guards, pattern matching, lambda, partial application, zip// | [[https://www.haskell.org/|Haskell]] | | | 14 | Wed | 14/10 | 11:00-13:00 | H | 11a - Haskell:\\ //an overview, Haskell ghci, basics, tuples, lists, list comprehension, guards, pattern matching, lambda, partial application, zip// | [[https://www.haskell.org/|Haskell]] | |
| | 15 | | | | | 11b - Haskell GHCi:\\ //conditionals, cases, pattern matching, exercises, recursive definitions, let-in, where, map, filter, fixpoint operator, folds, application, function composition// | [[https://www.haskell.org/|Haskell]] | | | 15 | Fri | 16/10 | 14:00-16:00 | C1 | 11b - Haskell GHCi:\\ //conditionals, cases, pattern matching, exercises, recursive definitions, let-in, where, map, filter, fixpoint operator, folds, application, function composition// | [[https://www.haskell.org/|Haskell]] | |
| | 16 | | | | | 12a - HOFL:\\ //syntax, pre-terms, types, types judgements, type system, type checking, type inference, principal type, type preservation//\\ \\ Exercises:\\ //Haskell, type inference in HOFL// | | | | 16 | Tue | 20/10 | 11:00-13:00 | PS4 | 12a - HOFL:\\ //syntax, pre-terms, types, types judgements, type system, type checking, type inference, principal type, type preservation//\\ \\ Exercises:\\ //Haskell, type inference in HOFL// | | |
| | 17 | | | | | 12b - HOFL:\\ //canonical forms, operational semantics, lazy vs eager evaluation//\\ \\ Exercises:\\ //HOFL, typing, operational semantics// | | | | 17 | Wed | 21/10 | 11:00-13:00 | H | 12b - HOFL:\\ //canonical forms, operational semantics, lazy vs eager evaluation//\\ \\ Exercises:\\ //HOFL, typing, operational semantics// | | |
| | 18 | | | | | 13a - Domain theory:\\ //Integers with bottom, cartesian product, projections, switching lemma, functional domains, lifting, let notation//\\ \\ Exercises:\\ //domains, HOFL denotational semantics// | | | | 18 | Fri | 23/10 | 14:00-16:00 | C1 | 13a - Domain theory:\\ //Integers with bottom, cartesian product, projections, switching lemma, functional domains, lifting, let notation//\\ \\ Exercises:\\ //domains, HOFL denotational semantics// | | |
| | 19 | | | | | 13b - Lifted Domains:\\ //lifted domains, lifting operator, de-lifting//\\ \\ 14 - Denotational semantics of HOFL:\\ //definition and examples, type consistency, continuity theorems, apply, fix, curry, uncurry, substitution lemma, compositionality, only free variables matters, canonical terms are not bottom//\\ \\ Exercises:\\ //HOFL, typing, denotational semantics, domains// | | | | 19 | Tue | 27/10 | 11:00-13:00 | PS4 | 13b - Lifted Domains:\\ //lifted domains, lifting operator, de-lifting//\\ \\ 14 - Denotational semantics of HOFL:\\ //definition and examples, type consistency, continuity theorems, apply, fix, curry, uncurry, substitution lemma, compositionality, only free variables matters, canonical terms are not bottom//\\ \\ Exercises:\\ //HOFL, typing, denotational semantics, domains// | | |
| | 20 | | | | | 14 - Denotational semantics of HOFL (ctd.):\\ //continuity theorems, fix, curry, uncurry, substitution lemma, compositionality, only free variables matters, canonical terms are not bottom//\\ \\ 15 - Consistency of HOFL:\\ //Counterexample to completeness, correctness of the operational semantics, operational convergence, denotational convergence, operational convergence implies denotational convergence (and vice versa), operational and denotational equivalence, correspondence for type int, unlifted semantics, lifted vs unlifted semantics// | | | | 20 | Wed | 28/10 | 11:00-13:00 | H | 14 - Denotational semantics of HOFL (ctd.):\\ //continuity theorems, fix, curry, uncurry, substitution lemma, compositionality, only free variables matters, canonical terms are not bottom//\\ \\ 15 - Consistency of HOFL:\\ //Counterexample to completeness, correctness of the operational semantics, operational convergence, denotational convergence, operational convergence implies denotational convergence (and vice versa), operational and denotational equivalence, correspondence for type int, unlifted semantics, lifted vs unlifted semantics// | | |
| |
| ---- | ---- |
| |
| ^ N ^ Date ^^ Time ^ Room ^ Lecture notes ^ Links ^ | ^ N ^ Date ^^ Time ^ Room ^ Lecture notes ^ Links ^ |
| | 21 | Fri | 07/11 | 16:00-18:00 | L1 | {{ :magistraleinformatica:mpp:2025-11-06_-_15_-_consistency_hofl.pdf |15 - Consistency of HOFL (ctd.)}}:\\ //unlifted semantics, lifted vs unlifted semantics//\\ \\ Exercises:\\ //HOFL//\\ \\ {{ :magistraleinformatica:mpp:2025-11-07_-_16a_-_erlang.pdf |16a - Erlang}}:\\ //an overview, erl, numbers, atoms, tuples, lists, terms, variables, term comparison, pattern matching, list comprehension, modules, functions, guards, higher order, recursion, pids, spawn, self, send, receive, examples// | [[http://www.erlang.org/|Erlang]] | | | 21 | Fri | 30/10 | 14:00-16:00 | C1 | 15 - Consistency of HOFL (ctd.):\\ //unlifted semantics, lifted vs unlifted semantics//\\ \\ Exercises:\\ //HOFL//\\ \\ 16a - Erlang:\\ //an overview, erl, numbers, atoms, tuples, lists, terms, variables, term comparison, pattern matching, list comprehension, modules, functions, guards, higher order, recursion, pids, spawn, self, send, receive, examples// | [[http://www.erlang.org/|Erlang]] | |
| | 22 | Tue | 11/11 | 14:00-16:00 | C1 | {{ :magistraleinformatica:mpp:2025-11-11_-_16b_-_google_go.pdf |16b - GoogleGo}}:\\ //an overview, playground, Go principles, variable declaration, type conversion, multiple assignments, type inference, imports, packages and public names, named return values, naked return, multiple results, conditionals and loops, pointers, struct, receiver arguments and methods, interfaces, goroutines, bidirectional channels, channel types, send, receive, asynchronous communication with buffering, close, select, communicating communication means, range, handling multiple senders, concurrent prime sieve// | [[http://golang.org/|Google Go]] | | | 22 | | | | | 16b - GoogleGo:\\ //an overview, playground, Go principles, variable declaration, type conversion, multiple assignments, type inference, imports, packages and public names, named return values, naked return, multiple results, conditionals and loops, pointers, struct, receiver arguments and methods, interfaces, goroutines, bidirectional channels, channel types, send, receive, asynchronous communication with buffering, close, select, communicating communication means, range, handling multiple senders, concurrent prime sieve// | [[http://golang.org/|Google Go]] | |
| | 23 | Thu | 13/11 | 09:00-11:00 | L1 | {{ :magistraleinformatica:mpp:2025-11-13_-_17_-_ccs.pdf |17 - CCS}}:\\ //Introduction to concurrency, Syntax, operational semantics, value passing, modelling imperative programs with CCS// | | | | 23 | | | | | 17 - CCS:\\ //Introduction to concurrency, Syntax, operational semantics, value passing, modelling imperative programs with CCS// | | |
| | 24 | Fri | 14/11 | 16:00-18:00 | L1 | {{ :magistraleinformatica:mpp:2025-11-14_-_18a_-_towards_bisimulation.pdf |18a - Towards bisimulation}}:\\ //abstract semantics, graph isomorphism, trace equivalence, bisimulation game// | | | | 24 | | | | | 18a - Towards bisimulation:\\ //abstract semantics, graph isomorphism, trace equivalence, bisimulation game// | | |
| | 25 | Tue | 18/11 | 16:00-18:00 | C1 | {{ :magistraleinformatica:mpp:2025-11-18_-_18b_-_ccs_bisimulation.pdf |18b - Bisimulation}}:\\ //strong bisimulation, strong bisimilarity, strong bisimilarity is an equivalence, strong bisimilarity is a bisimulation, strong bisimilarity is the coarsest strong bisimulation, finitely branching processes, strong bisimilarity as a fixpoint, Phi operator, Phi is monotone, Phi is continuous (on finitely branching processes), guarded processes// | | | | 25 | | | | | 18b - Bisimulation:\\ //strong bisimulation, strong bisimilarity, strong bisimilarity is an equivalence, strong bisimilarity is a bisimulation, strong bisimilarity is the coarsest strong bisimulation, finitely branching processes, strong bisimilarity as a fixpoint, Phi operator, Phi is monotone, Phi is continuous (on finitely branching processes), guarded processes// | | |
| | 26 | Thu | 20/11 | 09:00-11:00 | L1 | {{ :magistraleinformatica:mpp:2025-11-20_-_18c_-_more_bisimulation.pdf |18c - More on bisimulation}}:\\ //some properties of guarded processes, Knaster-Tarski's fixpoint theorem, strong bisimilarity is a congruence, some laws for strong bisimilarity//\\ \\ {{ :magistraleinformatica:mpp:2025-11-20_-_19_-_hml.pdf |19 - Hennessy-Milner logic}}:\\ //modalities, HML syntax, formula satisfaction, converse of a formula, HML equivalence// | | | | 26 | | | | | 18c - More on bisimulation:\\ //some properties of guarded processes, Knaster-Tarski's fixpoint theorem, strong bisimilarity is a congruence, some laws for strong bisimilarity//\\ \\ 19 - Hennessy-Milner logic:\\ //modalities, HML syntax, formula satisfaction, converse of a formula, HML equivalence// | | |
| | 27 | Fri | 21/11 | 16:00-18:00 | L1 | {{ :magistraleinformatica:mpp:2025-11-21_-_20_-_weak.pdf |20 - Weak Semantics}}:\\ //weak transitions, weak bisimulation, weak bisimilarity, weak bisimilarity is not a congruence, weak observational congruence, Milner's tau-laws//\\ \\ {{ :magistraleinformatica:mpp:2025-11-21_-_21_-_ccs_at_work.pdf |21 - CCS at work}}:\\ //playing with CCS (using CAAL), modelling and verification of mutual exclusion algorithms with CCS and CAAL// | | | | 27 | | | | | 20 - Weak Semantics:\\ //weak transitions, weak bisimulation, weak bisimilarity, weak bisimilarity is not a congruence, weak observational congruence, Milner's tau-laws//\\ \\ 21 - CCS at work:\\ //playing with CCS (using CAAL), modelling and verification of mutual exclusion algorithms with CCS and CAAL// | | |
| | 28 | Tue | 25/11 | **14:00-16:00** | **D1** | CCS at work:\\ //playing with CCS (using CAAL), modelling and verification of mutual exclusion algorithms with CCS and CAAL//\\ \\ {{ :magistraleinformatica:mpp:caal-2025-26.zip |CAAL session}} (copy the text and paste it in the Edit panel) | [[http://caal.cs.aau.dk/|CAAL]] | | | 28 | | | | | CCS at work:\\ //playing with CCS (using CAAL), modelling and verification of mutual exclusion algorithms with CCS and CAAL//\\ \\ CAAL session (copy the text and paste it in the Edit panel) | [[http://caal.cs.aau.dk/|CAAL]] | |
| | 29 | Thu | 27/11 | 09:00-11:00 | L1 | {{ :magistraleinformatica:mpp:2025-11-27_-_22a_-_ltl_ctl.pdf |22a - Temporal logics}}:\\ //linear temporal logic (LTL), linear structures models, shifting, LTL satisfaction, equivalence of formulas, automata-like models, computational tree logic (CTL* and CTL), infinite trees, infinite paths, branching structure, CTL* satisfaction, equivalence of formulas, CTL formulas, expressiveness comparison//\\ \\ {{ :magistraleinformatica:mpp:2025-11-27_-_22b_-_mu_calculus.pdf |22b - Mu-calculus}}:\\ //mu-calculus syntax and semantics// | | | | 29 | | | | | 22a - Temporal logics:\\ //linear temporal logic (LTL), linear structures models, shifting, LTL satisfaction, equivalence of formulas, automata-like models, computational tree logic (CTL* and CTL), infinite trees, infinite paths, branching structure, CTL* satisfaction, equivalence of formulas, CTL formulas, expressiveness comparison//\\ \\ 22b - Mu-calculus:\\ //mu-calculus syntax and semantics// | | |
| | - | Fri | 28/11 | 16:00-18:00 | L1 | **Canceled:**\\ //Conflicting institutional activities of the instructor// | | | | 30 | | | | | 22b - Mu-calculus:\\ //positive normal form, least and greatest fixpoints, invariant properties, possibly properties, mu-calculus with labels//\\ \\ KAT:\\ //Calculus of relations// | | |
| | 30 | Tue | 02/12 | 16:00-18:00 | C1 | **Prof. Bruni**\\ {{ :magistraleinformatica:mpp:2025-11-27_-_22b_-_mu_calculus.pdf |22b - Mu-calculus}}:\\ //positive normal form, least and greatest fixpoints, invariant properties, possibly properties, mu-calculus with labels//\\ \\ **Prof. Bonchi**\\ KAT:\\ //Calculus of relations// | | | | 31 | | | | | KAT:\\ //Kleene Algebras with Tests// | | |
| | 31 | Thu | 04/12 | 09:00-11:00 | L1 | **Prof. Bonchi**\\ KAT:\\ //Kleene Algebras with Tests// | | | | 32 | | | | | KAT:\\ //Kleene Algebras with Tests// | | |
| | 32 | Fri | 05/12 | 16:00-18:00 | L1 | **Prof. Bonchi**\\ KAT:\\ //Kleene Algebras with Tests// | | | | 33 | | | | | KAT:\\ //Reasoning about IMP programs// | | |
| | 33 | Tue | 09/12 | 16:00-18:00 | C1 | **Prof. Bonchi**\\ KAT:\\ //Reasoning about IMP programs// | | | | 34 | | | | | KAT:\\ //Reasoning about IMP programs// | | |
| | 34 | Thu | 11/12 | 09:00-11:00 | L1 | **Prof. Bonchi**\\ KAT:\\ //Reasoning about IMP programs// | | | |
| | - | Fri | 12/12 | 16:00-18:00 | L1 | **Canceled:**\\ //General strike// | | | |
| | End | | | | | | | | | End | | | | | | | |
| |