The words you are searching are inside this book. To get more targeted content, please make full-text search by clicking here.

MPRI 2-4 course Advanced topics & contemporary research in functional programming languages and type systems MPRI 2-4 course 2015{2016 1 / 10

Discover the best professional documents and content resources in AnyFlip Document Base.
Search
Published by , 2016-04-30 23:39:03

MPRI 2-4 course - Inria

MPRI 2-4 course Advanced topics & contemporary research in functional programming languages and type systems MPRI 2-4 course 2015{2016 1 / 10

MPRI 2-4 course

Advanced topics & contemporary research in

functional programming languages

and

type systems

MPRI 2-4 course 2015–2016 1 / 10

Part 1: program execution and transformations

Xavier Leroy; 5 lectures

Operational semantics, environments, closures.
Compilation to abstract machines.
Program transformations: continuation-passing style, monads,
closure conversion, defunctionalization.
Functional intermediate representations in optimizing compilers.
Leitmotif: semantic preservation & how to prove it.

MPRI 2-4 course 2015–2016 2 / 10

Part 2: type systems

Didier R´emy; 8 lectures

Parametric polymorphism (System F and ML).

Type soundness: subject reduction and progress theorems.

Type inference via constraint solving.

Recursion; imperative features; recursive types.

Algebraic data types. Existential types.

Logical relations and representation independence.

Leitmotif: type safety & how to prove it. 2015–2016 3 / 10

MPRI 2-4 course

Part 3: towards program proof

Yann R´egis-Gianas; 6 lectures

Generalized Algebraic Data Types (GADTs)
Dependently-typed programming.
Contracts and hybrid type checking.
Higher-order Hoare logic for functional programs.
Leitmotif: richer types guarantee stronger properties of programs.

MPRI 2-4 course 2015–2016 4 / 10

Part 4: mechanization using a proof assistant (Coq)

Xavier Leroy; 1 lecture

Coq mechanization of the theory of the simply-typed λ-calculus.
Towards mechanization of richer type systems:
how to handle bound variables and α-conversion.

MPRI 2-4 course 2015–2016 5 / 10

Prerequisites

A taste for programming!
Knowledge of a functional programming language (pref. OCaml or Haskell)
Notions of operational semantics and λ-calculus.

MPRI 2-4 course 2015–2016 6 / 10

Evaluation

Mid-term exam. (1/3)
Final exam. (1/3)
Programming project. (1/3)
Note: this course is not “breakable” in half.

MPRI 2-4 course 2015–2016 7 / 10

Related MPRI courses

2.2 Models of programming languages
2.3.1 Concurrency

2.6 Abstract interpretation
2.7.1 + 2.7.2 Proof systems and proof assistants

2.35.1 Constraint programming
2.36.1 Proofs of programs

MPRI 2-4 course 2015–2016 8 / 10

Time table

Sep 18, 25; Oct 02, 09, 16 Program execution & transformations

Oct 23, 30; Nov 06, 13, 20 Type systems

Nov 27 or Dec 04 mid-term exam

Dec 11, 18; Jan 08 Type systems

Jan 15, 22, 29; Feb 05, 12, 19 Towards proved programs

Feb 26 A taste of mechanization

Mar 04 or 11 final exam

mid Dec programming project announced

late Feb programming project deadline

MPRI 2-4 course 2015–2016 9 / 10

Course material

http://gallium.inria.fr/~xleroy/mpri/2-4/
Part 1: slides + exercises + OCaml examples
Part 2: course notes (incl. exercises) + slides
Part 3: slides (incl. exercises)
Part 4: slides + Coq examples

Plus: further reading; examples of exams from past years.

MPRI 2-4 course 2015–2016 10 / 10


Click to View FlipBook Version