| Entrambe le parti precedenti la revisioneRevisione precedenteProssima revisione | Revisione precedente |
| magistraleinformatica:mpp:start [10/09/2026 alle 08:29 (12 giorni fa)] – [Lectures (2nd 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// | | |
| | 13 | Tue | 13/10 | 11:00-13:00 | PS4 | Exercises:\\ //CPO, continuous functions, IMP// | | | | 13 | Tue | 13/10 | 11:00-13:00 | PS4 | Exercises:\\ //CPO, continuous functions, IMP// | | |
| | 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]] | | | 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 | Fri | 16/10 | 14:00-16:00 | 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 | 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// | | | | 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 | Wed | 21/10 | 11:00-13:00 | H | 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 | Fri | 23/10 | 14:00-16:00 | 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 | 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// | | | | 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 | 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// | | | | 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 | 30/10 | 14:00-16:00 | 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]] | | | 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 | | | | | 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 | | | | | 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// | | |