The list of the arguments of the
course, together with the material to study.
- Introduction to Functional Programming; Functional programsr; Introduction to Scheme [FB].1-5
- Order of evaluation, Recursion;
Higher-order functions; Anonymous functions; Curryfication; Definitions; Lists; Recursion on flat and nested lists; Correctness proofs; Typed languages. [FB].6-12
- Introduction to Lambda-calculus; Free and Bound Variables; alpha conversion; Beta-reduction and related results and notions [FB].13
- Introduction to typed lambda-calculi; Type assignment 'a la Curry. [FB].14
- Type substitution; Principal pairs; Introduction to Haskell; Functions; Recursive Types. [FB].14, [B2]
- Polymorphic types; Pattern Matching; Type Classes. [HPF],[B2]
- Infinite structures in Haskell; Introduction to Monads and I/O in Haskell. [HPF] ,[JN]
- Typed lambda-calculus 'a la Church; Type Checking; Extensions of lambda-calculus and their type system a' la Curry; Introduction to Subtyping. [FB].14-15,[HPF]
- A calculus for reasoning on Java-like languages: Featherweight Java, sintax and reduction. [IPW]; [BV]
- Typing rules for FJ; Properties. [IPW]; [BV]
- Introduction to Type systems for OO-languages; Fundamental concepts of OO-languages. [KB].1-2
- Type problems in OO-languages; Expressiviness of OO-languages; Subtyping in OO-languages [KB].3-4-5
- Type safety issues; Varieties of OO-languages. [KB].6-7
- A glimpse of Ocaml type system. [B4]
- Process calculi: Introduction to the Pi-calculus; Reduction semantics. [PS]
- Pi-calculus variants. LTS. [PS]
- Introduction to the PICT language; Core Pict. [BP]
- The PICT language: complex values and derived forms. [P]
- Introduction to Prolog. [AC],[WFC]
- Prolog programming. Cut. Tail recursion. [PL][JRF],[B3]
- A broad glimpse of Programming Paradigms. [vR]
Reading Material
-
[FB] Franco Barbanera
Short Introduction to Functional Programming and the Lambda-Calculus
(html file, last update: 23 March 2011)
-
[B2]
Franco Barbanera Notes on Data Types in Haskell (html file, last update: 11 Jan 2010)
[B3]
Franco Barbanera Notes on Tail Recursion and call/cc (html file, last update: 27 May 2010)
-
[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)
- [JN]
Jeff Newbern
All About Monads (link to external html file)(downlodable .zip version) (To be studied: Part I: all, except Zero and Plus in The monads laws and except Monad support in Haskell. Part II: Maybe, List, IO.
-
[IPW] A.Igarashi, B.Pierce, P.Wadler
Featherweight Java, A minimal core calculus f
or Java and GJ (pdf file) (Sections 1, 2)
[BV] B. Venneri
Slides I on [IPW];
Slides II on [IPW] (pdf files, in
Italian)
-
[KB] Kim B. Bruce;
Foundations of Object-Oriented Programming Languages: Types and Semantics;
The MIT Press; ISBN 0-262-02523-X (a couple of copies are available in the library) (Ch.s 1-7, except Sect. 4.2)
(not strictly needed: Relevant points and sentences of [KB]
Ch.1-2
Ch.3
Ch.4-5
Ch.6-7 (files .txt)
-
[B4] F.Barbanera
Examples about Ocaml type system
-
-
[PS] P.Sewell
Applied Pi, A brief tutorial
(pdf file) (Chapters 1(tranne 1.5), 2)
(not strictly needed:
relevant points of [PS] discussed during lessons, file .txt)
-
[BP] B.Pierce
Programming in the Pi-Calculus, A Tutorial Introduction to Tamed Pict
(pdf file)(Chapters 1,2.2,3,4,5)
-
[AC] Alison Cawsey The Basics of Prolog (html file, excerpt from AI Programming in Prolog)
[WFC] ??? Prolog Introductory Prolog slides(ppt file)
-
[PL] P.Lucas Introduction to Prolog (.pdf file; 4.6 and 4.7 optional)
-
[JRF] J.R.Fisher. A few programming examples in Prolog: Chess Queens (html file),
Paths in graphs (html file),
Map coloring (html file),
Map coloringII (html file),
(Excerpts from Prolog Tutorial),
Map coloringB (html file)
(Excerpt from Prolog Programming in depth)
-
[vR] Peter Van Roy Programming Paradigms for Dummies: What Every Programmer Should Know (pdf file)
The paradigms diagram(pdf version) (jpg format version)
Interpreters and Manuals:
Optional Reading Material