Introduction à la théorie
des langages de programmation
Comme le dit l'ancienne page du cours:
Ce cours est une introduction aux principaux outils qui permettent de
décrire les langages de programmation :
la sémantique opérationnelle à
petits pas, la sémantique opérationnelle à grands pas
et la sémantique dénotationnelle.
Ces outils sont utilisés pour décrire
quelques fonctionnalités des langages de programmation parmi les plus
courantes:
les fonctions, la récursivité, le test, l'affectation,
les boucles, les objets...
Tout au long de ce cours, des travaux dirigés
permettent de mettre ces outils en oeuvre, en écrivant des
interpréteurs et des compilateurs pour de petits langages
expérimentaux.
Le cours
Voir la page du professeur.
Les Travaux Pratiques
- TD1:
rappels, expressions algébriques, formules booléennes,
et une petite construction inductive sur les grammaires hors-contexte.
- TD2: un évaluateur pour PCF, substitution.
- TD3: un interpréteur pour PCF, appel par
valeur / appel par nom.
- TD4: un compilateur pour PCF, la machine
abstraite ASEC.
- TD5: vérification de type, sémantique
dénotationelle dans le cas fini.
- TD6: inférence de type, unification,
résolution incrémentale.
- TD7: polymorphisme.
- TD8: aspects impératifs, interprétation,
transformation vers PCF standard.
- TD9: enregistrements et objets.