Mentions légales du service
Skip to content
GitLab
Explore
Sign in
Primary navigation
Search or go to…
Project
M
mpri-2.4-public
Manage
Activity
Members
Labels
Plan
Issues
Issue boards
Milestones
Wiki
Code
Merge requests
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Snippets
Deploy
Releases
Container Registry
Model registry
Monitor
Incidents
Service Desk
Analyze
Value stream analytics
Contributor analytics
Repository analytics
Model experiments
Help
Help
Support
GitLab documentation
Compare GitLab plans
Community forum
Contribute to GitLab
Provide feedback
Keyboard shortcuts
?
Snippets
Groups
Projects
Show more breadcrumbs
POTTIER Francois
mpri-2.4-public
Commits
d5a262d7
Commit
d5a262d7
authored
6 months ago
by
Jacques-Henri Jourdan
Browse files
Options
Downloads
Patches
Plain Diff
2024-2025 schedule
parent
5b4e1850
No related branches found
No related tags found
No related merge requests found
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
README.md
+24
-24
24 additions, 24 deletions
README.md
with
24 additions
and
24 deletions
README.md
+
24
−
24
View file @
d5a262d7
# Functional programming and type systems (202
3
-202
4
)
# Functional programming and type systems (202
4
-202
5
)
This page supplements
[
the official page of MPRI 2-4
](
https://wikimpri.dptinfo.ens-cachan.fr/doku.php?id=cours:c-2-4-2
)
.
...
...
@@ -16,7 +16,7 @@ The course is taught by
and
[
Gabriel Scherer
](
http://www.lix.polytechnique.fr/Labo/Gabriel.Scherer/
)
(
GS
)
.
The content of the course is partly renewed in 202
3
-202
4
. In particular, we
The content of the course is partly renewed in 202
4
-202
5
. In particular, we
will teach both
**syntactic and semantic proofs of type soundness**
, place
more emphasis on
**logical relations**
, including
**
logical relations in
Iris
**, and present **
two distinct algorithmic approaches to type inference
**
.
...
...
@@ -66,46 +66,46 @@ The syllabus is organized in four main segments of five lectures each.
*
(read at home) (optional) The CPS transformation (FP).
*
(
[
slides 05
](
slides/fpottier-05.pdf
)
,
[
slides without animations 05
](
slides/fpottier-printing-05.pdf
)
).
*
(22/10/2024) System F with mutable state; the value restriction; type soundness (GS)
*
(
[
slides
](
slides/scherer-02.pdf
)
)
### Semantic Proofs of Type Soundness and Logical Relations
*
(22/10/2024) Semantic interpretation of types: unary logical relations (GS).
+
(
[
slides
](
slides/scherer-01.pdf
)
,
[
course notes from Lau Skorstengaard
](
https://arxiv.org/pdf/1907.11133.pdf
)
)
*
(29/10/2024) Binary logical relations and parametricity (GS).
+
(same slides)
*
(05/11/2024) Mutable state and the value restriction (GS).
+
(
[
slides
](
slides/scherer-02.pdf
)
)
*
(12/11/2024) Strong normalization for System F in Coq (GS).
+
(
[
in CBV
](
https://github.com/coq-community/autosubst/blob/master/examples/ssr/SystemF_CBV.v
)
,
[
full reduction
](
https://github.com/coq-community/autosubst/blob/master/examples/ssr/SystemF_SN.v
)
)
*
(19/11/2024) Semantic type soundness for System F
with mutable state in Coq/Iris (JHJ).
+
(
[
slides
](
slides/jhjourdan-00.pdf
)
,
[
Coq/Iris development
](
coq/logic_rel.tar.gz
)
)
*
(22/10/2024) Unary logical relations for simple types; (weak) normalisation of simply-typed λ-calculus (GS).
*
(
[
slides
](
slides/scherer-01.pdf
)
,
[
course notes from Lau Skorstengaard
](
https://arxiv.org/pdf/1907.11133.pdf
)
.
*
(29/10/2024) Unary logical relations for polymorphic types; (weak) normalisation of System F (GS).
*
(Same slides).
*
(05/11/2024) Binary logical relations and parametricity (GS).
*
(Same slides).
*
(12/11/2024) (Interlude.) Introduction to programming in Rust (JHJ)
*
(
[
slides
](
slides/jhjourdan-01.pdf
)
).
*
**(26/11/2024) mid-term exam**
, in the usual room and at the usual time,
**from 12:45 to 15:30**
, without a break.
The duration of the exam is 2h45.
*
(10/12/2024) Semantic type soundness for System F with mutable state in Coq/Iris (JHJ).
*
(
[
slides
](
slides/jhjourdan-00.pdf
)
,
[
Coq/Iris development
](
coq/logic_rel.tar.gz
)
)
### [Typed Programming](overview/dagand.md)
*
(1
0
/12/2024) Ad-hoc polymorphism and overloading (
[
handout by D. Rémy
](
http://cambium.inria.fr/~remy/mpri/cours-overloading.pdf
)
, PED).
*
(
1
7/1
2
/202
4
) Applicative functors and monads (PED).
*
(1
7
/12/2024) Ad-hoc polymorphism and overloading (
[
handout by D. Rémy
](
http://cambium.inria.fr/~remy/mpri/cours-overloading.pdf
)
, PED).
*
(
0
7/
0
1/202
5
) Applicative functors and monads (PED).
+
[
Monadic gymnastics (OCaml)
](
https://gitlab.com/pedagand/mpri-2.4-monads
)
+
[
Functor-oriented programming (Agda)
](
./agda/04-generic/Desc.lagda.rst
)
*
(07/01/2025) Hindley-Milner type inference and elaboration (PED).
*
(14/01/2025) System Fω and modules (PED).
+
[
Handout by D. Rémy
](
http://gallium.inria.fr/~remy/mpri/cours-fomega.pdf
)
*
(21/01/2025) Hindley-Milner type inference and elaboration (PED).
+
[
Handout by D. Rémy
](
http://gallium.inria.fr/~remy/mpri/2013/cours3.pdf
)
*
(
14
/01/2025) Bidirectional type inference and elaboration (PED).
*
(
28
/01/2025) Bidirectional type inference and elaboration (PED).
+
[
Bidirectional typing, Dunfield & Krishnaswamy
](
https://arxiv.org/abs/1908.05839
)
*
(21/01/2025) System Fω and modules (PED).
+
[
Handout by D. Rémy
](
http://gallium.inria.fr/~remy/mpri/cours-fomega.pdf
)
### Programming with Resources in Rust
*
(28/01/2025) Introduction to Rust programming (JHJ) (
[
slides
](
slides/jhjourdan-01.pdf
)
).
*
(04/02/2025) When the aliasing discipline is too strong (JHJ) (
[
slides
](
slides/jhjourdan-02.pdf
)
).
+
Hands-on: binary search trees in Rust (
[
exercises
](
tdtp/jhjourdan1.pdf
)
,
[
solution
](
tdtp/jhjourdan1_solution.rs
)
).
*
(11/02/2025) Multi-threading (JHJ) (
[
slides
](
slides/jhjourdan-03.pdf
)
).
+
Hands-on: persistent arrays (
[
exercises
](
tdtp/jhjourdan2.pdf
)
,
[
template
](
tdtp/jhjourdan2_template.rs
)
,
[
solution
](
tdtp/jhjourdan2_solution.rs
)
).
*
(11/02/2025) Practicing Rust.
*
(18/02/2025) Metatheory of Rust's type system (JHJ) (
[
slides
](
slides/jhjourdan-04.pdf
)
).
*
(25/02/2025) Exercise session (GS).
*
(04/03/2025)
*break*
...
...
This diff is collapsed.
Click to expand it.
Preview
0%
Loading
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Save comment
Cancel
Please
register
or
sign in
to comment