====== Modelli di calcolo - Models of computation ====== {{:magistraleinformatica:mod:prova.png?150 | }} **MOD 2014/15 (375AA, 9 CFU)** Lecturer: **Roberto Bruni**\\ [[http://www.di.unipi.it/~bruni|web]] - [[http://www.cli.di.unipi.it/~rbruni|CLI]] - [[mailto:rbruni@cli.di.unipi.it|email]] - phone 050 2212785 - fax 050 2212726 Office hours: **Wednesday 15:00-17:00 or by appointment** ---- ==== Objectives ==== The objective of the course is to present: * different models of computation, * their programming paradigms, * their mathematical descriptions, both //concrete// and //abstract//, and also to present some intellectual tools/techniques: * for reasoning on models, and * for proving (some of) their properties. To this aim, a rigorous approach will be followed for both the //syntax// and the //semantics// of the paradigms we work on: * **IMP**: imperative models * **HOFL**: functional models * **CCS**, pi-calculus: concurrent, non-deterministic and interactive models * **PEPA**: probabilistic/stochastic models The focus will be on basic proof techniques (there will be not time to introduce more advanced topics in detail). In doing so, several important notions will be presented (not necessarily in this order): context-free grammars, proof systems (axioms and inference rules), goal-driven derivations, various incarnations of well-founded induction, structural recursion, lambda-calculus, program equivalence, compositionality, completeness and correctness, type systems, domain theory (complete partial orders, continuous functions, fixpoint), labelled transition systems, bisimulation equivalences, temporal and modal logics, Markov chains, probabilistic reactive and generative systems. ---- ==== Course Overview ==== We introduce the principles of operational semantics, the principles of denotational semantics, and the techniques to relate one to the other for an imperative language and for a higher order functional language. Operational and observational semantics of two process description languages (CCS and pi-calculus) are presented. Several examples of temporal and modal logics are also discussed (HM, LTL, CTL*, mu-calculus). Finally, we consider operational nondeterministic models with discrete probabilities, and we present them from the perspective of probabilistic and stochastic automata, and of the PEPA calculus. ---- ==== Textbook(s) ==== * Glynn Winskel, "The formal Semantics of Programming Languages", MIT Press, 1993. Chapters: 1.3, 2, 3, 4, 5, 8, 11.\\ "La Semantica Formale dei Linguaggi di Programmazione", traduzione italiana a cura di Franco Turini, UTET 1999. * Robin Milner, "Communication and Concurrency, Prentice Hall, 1989. Chapters: 1-7, 10. * Lecture notes: {{:magistraleinformatica:mod:notes-mod-february-2015.pdf|February 2015}}. * A revised version of Chapters 1-6 of the lecture notes is also available as of March 2015: {{:magistraleinformatica:mod:notes-mod-2015-ch1-6.pdf|Chapters 1-6 revised}} **(the updated version contains several corrections as presented during the course: please consult it electronically and avoid printing it if you have already printed the previous version)** * A revised version of Chapters 7-12 of the lecture notes is also available as of May 2015: {{:magistraleinformatica:mod:notes-mod-2015-ch7-12.pdf|Chapters 7-12 revised}} **(the updated version contains several corrections as presented during the course: please consult it electronically and avoid printing it if you have already printed the previous version)** ---- ==== Exams ==== The evaluation will be based on written and oral exams. The written exam is not necessary if the two (written) mid-terms exams are evaluated positively. * First (written) mid-term exam:\\ **Monday 13/04/2015, 14:00-16:00, Room A1** * Second (written) mid-term exam:\\ **Thursday 28/05/2015, 14:00-16:00, Room A1** Registration to written exams (mandatory): [[https://esami.unipi.it/esami/|Exams registration system]] In the written exam the student must demonstrate * knowledge: his/her knowledge of the course material * problem solving: the ability to solve some exercises, and * organisation: the ability to organise an effective and correctly written reply. During the oral exam the student must demonstrate * knowledge: his/her knowledge of the course material, and * understanding: the ability to discuss the reading matter thoughtfully and with propriety of expression. ---- ==== Announcements ==== * **16/05/2015**:\\ A {{:magistraleinformatica:mod:notes-mod-2015-ch7-12.pdf|revised version of Chapters 7-12}} of the lecture notes is now available. * **07/05/2015**:\\ An additional lecture has been scheduled on thursday **21/05/2015, 14:00-16:00, Room L1** to replace the lecture missed on thursday 16/04/2015. * **02/04/2015**:\\ The lecture of thursday **16/04/2015 is canceled** to allow students participation to an assembly. * **01/04/2015**:\\ A {{:magistraleinformatica:mod:notes-mod-2015-ch1-6.pdf|revised version of Chapters 1-6}} of the lecture notes is now available. * **04/03/2015**:\\ An additional lecture has been scheduled on thursday **12/03/2015, 14:00-16:00, Room B** to replace the lecture missed on thursday 05/03/2015. * **02/03/2015**:\\ The lecture of thursday **05/03/2015 is canceled**. * **23/02/2015**:\\ Each student should send an email to the professor from his/her favourite email account with **subject MOD14** and the following data\\ (by doing so, the account will be included in the class mailing-list, where important announcements can be sent): - **first name** and **last name** (please clarify which is which to avoid ambiguities) - **enrolment number** (numero di matricola) - bachelor degree (**course of study** and **university**) ---- ==== Lectures ==== ^ N ^ Date ^ Time ^ Room ^ Lecture notes ^ Links ^ | 1 | Mon 23/02 | 14:00-16:00 | C1 | Introduction to the course | | | 2 | Wed 25/02 | 11:00-13:00 | L1 | Preliminaries | | | 3 | Thu 26/02 | 11:00-13:00 | L1 | Preliminaries\\ \\ Unification | {{:magistraleinformatica:mod:a_short_note_on_unification.pdf|A short note on unification}} | | 4 | Mon 02/03 | 14:00-16:00 | C1 | Operational semantics of IMP | | | 5 | Wed 04/03 | 11:00-13:00 | L1 | Operational semantics of IMP:\\ //non-termination, equivalence// | | | 6 | Thu 05/03 | 11:00-13:00 | L1 | **Canceled**\\ To recover, an additional lecture has been scheduled on\\ Thu 12/03/2015 from 14:00 to 16:00 | | | 7 | Mon 09/03 | 14:00-16:00 | C1 | Induction and recursion:\\ //well-founded induction, mathematical inductions, structural induction// | | | 8 | Wed 11/03 | 11:00-13:00 | L1 | Induction and recursion:\\ //induction on derivations, rule induction// | | | 9 | Thu 12/03 | 11:00-13:00 | L1 | Induction and recursion:\\ //well-founded recursion//\\ \\ Partial orders and fixpoints:\\ //partial orders, Hasse diagrams, least upper bound// | | | 10 | Thu 12/03 | 14:00-16:00 | B | Exercises on the operational semantics of IMP and induction | | | 11 | Mon 16/03 | 14:00-16:00 | C1 | Partial orders and fixpoints:\\ //chains, complete partial orders, continuity and fixpoints//\\ //immediate consequences operator// | | | 12 | Wed 18/03 | 11:00-13:00 | L1 | Partial orders and fixpoints:\\ //immediate consequences operator//\\ \\ Introduction to the lambda-notation | | | 13 | Thu 19/03 | 11:00-13:00 | L1 | Denotational semantics of IMP | {{:magistraleinformatica:mod:a_short_note_on_lambda_notation.pdf|A short note on lambda-notation}} | | 14 | Mon 23/03 | 14:00-16:00 | C1 | Denotational semantics of IMP:\\ //Equivalence between operational and denotational semantics: completeness// | | | 15 | Wed 25/03 | 11:00-13:00 | L1 | Denotational semantics of IMP:\\ //Equivalence between operational and denotational semantics: correctness//\\ //Computational induction (optional argument)// | | | 16 | Thu 26/03 | 11:00-13:00 | L1 | Exercises about CPO and the denotational semantics of IMP | | | 17 | Mon 30/03 | 14:00-16:00 | C1 | Operational semantics of HOFL:\\ //Pre-terms, well-formed terms, typability// | | | 18 | Wed 01/04 | 11:00-13:00 | L1 | Operational semantics of HOFL:\\ //Lazy and eager semantics, canonical forms// | | | 19 | Thu 02/04 | 11:00-13:00 | L1 | Exercises: preparation to mid-term exam | | | 20 | Mon 13/04 | 14:00-16:00 | A1 | **First mid-term written exam**\\ {{:magistraleinformatica:mod:testo-2015-04-13.pdf|Exam}} | | | 21 | Wed 15/04 | 11:00-13:00 | L1 | Solutions to the first mid-term exam\\ \\ Exercises on the operational semantics of HOFL | | | 22 | Thu 16/04 | 11:00-13:00 | L1 | **Canceled** due to a student assembly | | | 23 | Mon 20/04 | 14:00-16:00 | C1 | Exercises on the equivalence between the operational and denotational semantics of IMP and on the operational semantics of HOFL | | | 24 | Wed 22/04 | 11:00-13:00 | L1 | Domain theory:\\ //Integers with bottom, cartesian product, functional domains, lifting// | | | 25 | Thu 23/04 | 11:00-13:00 | L1 | Domain theory:\\ //continuity theorems, apply, currry, fix// | | | 26 | Mon 27/04 | 14:00-16:00 | C1 | HOFL denotational semantics | | | 27 | Wed 29/04 | 11:00-13:00 | L1 | Equivalence between the operational and denotational semantics of HOFL | | | 28 | Thu 30/04 | 11:00-13:00 | L1 | Exercises on the denotational semantics of HOFL and on the equivalence between the operational and denotational semantics of HOFL | | | 29 | Mon 04/05 | 14:00-16:00 | C1 | CCS:\\ //operational semantics// | | | 30 | Wed 06/05 | 11:00-13:00 | L1 | CCS:\\ //abstract semantics, strong bisimilarity// | | | 31 | Thu 07/05 | 11:00-13:00 | L1 | CCS:\\ //Modelling with CCS, Hennessy-Milner logic, weak bisimilarity// | {{:magistraleinformatica:mod:a_short_note_on_ccs.pdf|A short note on CCS}} | | 32 | Mon 11/05 | 14:00-16:00 | C1 | CCS:\\ //Milner's tau-laws, dynamic bisimilarity, modelling with CCS//\\ \\ Temporal and modal logics:\\ //linear temporal logic (LTL)// | [[http://pseuco.com|PseuCo]]\\ [[http://rap.dsi.unifi.it/tapas/en/index.htm|TAPAS]] | | 33 | Wed 13/05 | 11:00-13:00 | L1 | Temporal and modal logics:\\ //computational tree logic (CTL* and CTL), mu-calculus// | | | 34 | Thu 14/05 | 11:00-13:00 | L1 | Pi-calculus:\\ //syntax and operational semantics,\\ structural equivalence and reduction semantics (optional reading)\\ abstract semantics, early and late bisimilarities// | {{:magistraleinformatica:mod:a_short_note_on_google_go.pdf|A short note on Google Go}}\\ [[http://golang.org/|Google Go]] | | | Mon 18/05 | 14:00-16:00 | C1 | Exercises on CCS, modal logic and pi-calculus | | | | Wed 20/05 | 11:00-13:00 | L1 | Measure theory and Markov chains:\\ //probability space, stochastic processes, DTMC// | | | | Thu 21/05 | 11:00-13:00 | L1 | Measure theory and Markov chains:\\ //steady state distribution, CTMC//\\ \\ Markov chains with actions and nondeterminism:\\ //reactive systems, generative systems,\\ simple Segala automata, Segala automata\\ alternative and bundle transitions systems (optional reading)// | | | | Thu 21/05 | 14:00-16:00 | L1 | PEPA\\ \\ Exercises: preparation to mid-term exam | [[http://www.dcs.ed.ac.uk/pepa/|PEPA]] | | | Mon 25/05 | 14:00-16:00 | C1 | Exercises on probabilistic systems | | | | Thu 28/05 | 14:00-16:00 | A1 | **Second mid-term written exam**\\ {{:magistraleinformatica:mod:testo-2015-05-28.pdf|Exam}} | | | | Wed 10/06 | 11:00-13:00 | L1 | {{:magistraleinformatica:mod:testo-2015-06-10.pdf|Exam}} | | | | Wed 01/07 | 11:00-13:00 | L1 | {{:magistraleinformatica:mod:testo-2015-07-01.pdf|Exam}} | | | | Wed 22/07 | 11:00-13:00 | L1 | {{:magistraleinformatica:mod:testo-2015-07-22.pdf|Exam}} | | | | Wed 09/09 | 11:00-13:00 | A1 | {{:magistraleinformatica:mod:testo-2015-09-09.pdf|Exam}} | | | | Wed 20/01 | 14:00-16:00 | N1 | {{:magistraleinformatica:mod:2014-15:testo-2016-01-20.pdf|Exam}} | | | | Wed 10/02 | 14:00-16:00 | N1 | {{:magistraleinformatica:mod:2014-15:testo-2016-02-10.pdf|Exam}} | | ---- ==== Past courses ==== * [[magistraleinformatica:mod:2013-14:|A.A. 2013/14]] ----