Ce cours explore trois questions à propos des langages de programmation :

  1. leur définition par une sémantique et une, ou plutôt deux, syntaxe(s),
  2. leur interprétation, c'est-à-dire l'écriture d'une fonction qui prend en entrée un programme (donné par son code source) et ses éventuels arguments et renvoie le résultat de l'exécution du programme,
  3. leur compilation, c'est-à-dire l'écriture d'une fonction qui prend entrée un programme (donné par son code source) et produit un programme équivalent écrit dans un autre langage.

Notes de cours

Archives

Programme

Première période.
Date Cours TD/TP
02/09 1. Panorama
02/09 2. Interprétation
09/09 TP mise en route caml
[ énoncé ]
09/09 TD induction structurelle
[ énoncé | imp.ml | corrigé ]
16/09 3. Syntaxe TD grammaires
[ énoncé | corrigé ]
23/09 4. Assembleur TP assembleur MIPS
[ énoncé | imp2mips.ml | corrigé ]
[ mystère 1 | mystère 2 | mystère 3 ]
30/09 5. Analyse lexicale TD expression régulières
[ énoncé | corrigé ]
07/10 6. Analyse syntaxique TD analyse ascendante
[ énoncé | corrigé ]
14/10 7. Outils d'analyse TP lex/yacc
[ énoncé | corr 1 | corr 2 ]
[ if | fcall | fcall2 | impcat ]
21/10 Partiel
28/10 Vacances
Deuxième période.
Date Cours TD/TP
04/11 8. Types TD types
[ énoncé | corrigé ]
18/11 9. Fonctions TP projet
[ début projet Kawa ]
25/11 10. Structures TD Assembleur MIPS (fonctions et mémoire)
[ .pdf | corrigé ]
02/12 11. Prog. objet TP projet
09/12 12. Compilation objet TD révisions [ sujet corrigé ]
16/12 Examen

Autres ressources

MIPS

Ocaml

Ouvrages sur (et autour de) la compilation