The list of the arguments of the
course, together with the material to study.
- Concurrent and distributed programming in non-imperative programming paradigms. Introduction to Functional Programming. [FB].1-5
- Main functional-programming concepts: Order of evaluation, Recursion;
Higher-order functions; Anonymous functions; Curryfication; Lists; Recursion; Correctness proofs. [FB].6-12
- Short review of the Lambda-calculus [FB].13
- Types for functional programming. [FB].14
- Introduction to Haskell; Polymorphic types; Pattern Matching; Type Classes. Infinite structures. [HPF],[B2]
- Tail recursion [JRF],[B3]
- The actors model of concurrent programming; A Concurrent functional language: Erlang [AS],[FB5],[JAetal](For the non concurrent part of Erlang it is enough the Hands-on tutorial whose link is in the Interpreters and manuals section below.)
- Concurrent Programming in Erlang [JAetal],[FB5],[AAVV]
- Process calculi: Introduction to the Pi-calculus;. [PS]
- Process calculi: Sketchy introduction to contextual equivalence and bisimulation [BP2]
- Introduction to the PICT language; Core Pict. [BP],[FB3]
- Overview of Session Types. [FB7]
- Session and Refinement Types: the language SePi. [FVM],[FV]
- Introduction to Scribble [AVscr], [AVscr2],
- An experimental language with multiparty session types [D-EtAl]
- Overview of process calculi for distributed programming. [PS]
- Basics of distributed programming in Erlang. [STetAl]
Reading Material
-
[FB] Franco Barbanera
Short Introduction to Functional Programming and the Lambda-Calculus
(html file, last update: March 2016)
-
[B2]
Franco Barbanera Notes on Data Types in Haskell (html file, last update: 11 Jan 2010)
[B3]
Franco Barbanera Notes on Tail Recursion (html file)
-
[HPF]
P.Hudak, J.Peterson, J.H.Fasel
A Gentle Introduction to Haskell 98 (pdf file) (To be studied: Ch.s 1-3; Ch. 4: only pag.15; Ch.5: only up to the first half of page 25; Ch.7: up to page 33 included)
- [AS]A.Shali Actor Programming in Chapel (.pdf file; Section 2)
- [FB5]F.Barbanera Short Notes On Erlang and Actors (.html file) last update: 18 June 2012
- [JAetal1]J.Armstrong et al. Concurrent Programming in Erlang (.pdf file; 5.1-5.4)
- [AAVV] Erlang Examples (.txt file;)
-
[PS] P.Sewell
Applied Pi, A brief tutorial
(pdf file) Chapters 1(except 1.5), 2
-
[BP] B.Pierce
Programming in the Pi-Calculus, A Tutorial Introduction to Tamed Pict
(pdf file)(Chapters 1,2.2,2.5.2,3,4,6(only pag.49 and first example of 50))
[BP2] B.Pierce
Foundational Calculi for Programming Languages
(pdf file)(Section 3.3)
- [FB3] F.Barbanera
Summary of [BP] with a few extra notes (file .txt) last update: 6 May 2012.
- [FB7] F.Barbanera
A sketchy overview of Session Types (file .html)
- [FV] J. Franco, V. T. Vasconcelos
Introduction to SePi
- [FVM] J. Franco, V. T. Vasconcelos, D. Mostrous
SePi by Example
- [AVscr] AA.VV.
Scribble Tutorial
- [AVscr2] AA.VV.
Informal description of Scribble (pdf file) Section 3
- [D-EtAl] AA.VV.
A pi-calculus with multiparty session types (pdf file) Sections 1 and 2.
- [D-EtAl] Simon Thompson et Al., Erlang Programming. (Book) Published by O'Reilly Media.
Chapter 11, up to section "Node Connections" (excluded)
Interpreters, Compilers and Manuals:
Optional Reading Material