Cette page est plus adaptée à n'importe quel navigateur.

Cours Principe des langages de programmation

(AKA IN213)
2018-2019

Mise à jour 25/04 : erreur dans l'exemple final de déroulé de l'analyse (séance interprétation abstraite).
Mise à jour 18/04 : affreuses typos de grammaire corrigées.
Mise à jour 01/04 : petit rajout à propos de la suppression de récursivité à gauche des grammaires.
Mise à jour 26/03 : typos + diapos légèrement réorganisées (c.f. seconde séance du cours).

Environnement de développement

Aucun éditeur de texte n'est imposé. Vous choisirez celui qui vous convient le mieux (Emacs, Atom, Sublime Text, ou quelque autre que ce soit). L'utilisation du terminal sera nécessaire. Le langage utilisé pour ce cours est OCaml.

Supports de cours

Le polycopié est disponible ici et l'intégralité des diapositives de cours .

Il est également possible d'obtenir les diapositives de cours séance par séance en 1 par page:
Cours 1 & 2 : Présentation d'OCaml
Cours 3 : Analyse lexicale
Cours 4 : Analyse syntaxique
Cours 5 : Sémantique dénotationnelle
Cours 6 : Sémantique opérationnelle
Cours 7 : Termes
Cours 8 : Typage
Cours 9 : Objets
Cours 10 : Gestion de la mémoire
Cours 11 : Lambda-calcul
Cours 12 : Introduction à l'interprétation abstraite
Cours 13 : Quelques subtilités de langages
Cours 14 : Continuation du projet (3h TD)

ou en 3 par page avec une marge pour écrire vos notes et le thème en gris pour impression :
Cours 1 & 2
Cours 3 Cours 4 Cours 5 Cours 6 Cours 7 Cours 8 Cours 9 Cours 10 Cours 11 Cours 12 Cours13 

Matériel pour les TDs

Vous trouverez via les liens ci-dessous les énoncés et les substrats de programme nécessaires aux Travaux Dirigés.

Vous pourrez récupérer les fichiers dont vous avez besoin via cette page ou en les copiant depuis ~/pessaux/public_html/teaching/in213/TDs/<n° séance>/enonce/ ou ~/pessaux/public_html/teaching/in213/TDs/<n° séance>/solution/

TD 1 & 2 : Pratique d'OCaml
TD 3 : Analyse lexicale
TD 4 : Analyse syntaxique
TD 5: Sémantique dénotationnelle - interprète de PCF
TD 6 : Sémantique opérationnelle - interprète de PCF
TD 7 : Termes, substitutions, filtrage et unification
TD 8 : Inférence de type de PCF
TD 9 : Compilation en bytecode de PCF
TD 10 : Compilation en bytecode de IMP
TD 11 : Réalisation d'un GC pour IMP
TD 12, 13, 14 : Projet

Mars 2019