Paradigmes et Interprétation

Ce cours s'intéresse à la compréhension de différents concepts qui sont à la base de nombreux paradigmes de programmation. Ces concepts sont introduits au fur et à mesure et on se propose de réaliser des interpréteurs pour en comprendre les fonctionnements. Le cours se base sur le livre Programming languages : Application and Interpretation, également disponible au format pdf, et s'inspire des cours de Shriram Krishnamurthi et de Matthew Flatt.

Programming languages : Application and Interpretation

Concrètement, les notions seront introduites une à une et seront traduites dans un langage propre au cours. Ce langage aura une syntaxe qui s'approche du LISP afin de faciliter l'écriture d'interpréteurs. Ceux-ci seront écrit en Scheme à l'aide du logiciel DrRacket. La maîtrise de Scheme n'est pas un prérequis au cours, la syntaxe et les structures utilisées étant rappelées quand nécessaire. Au besoin, vous pouvez vous référer au livre Premiers cours de programmation avec Scheme de Jean-Paul Roy ou au cours d' introduction à la programmation fonctionnelle.

Racket homepage Premiers cours de programmation avec Scheme

Liens de navigation

Annonces

Organisation du cours

Les cours et TP sont donnés le vendredi. Intervenants:

Cours

  1. Introduction.
  2. Expressions arithmétiques et fonctions.
    arith.rkt     fun.rkt     let.rkt     env.rkt
  3. Ordre supérieur.
    ordresup.rkt
  4. Enregistrements.
    record.rkt     record-mutable.rkt
  5. Programmation à états : boîtes et variables.
    box.rkt     store.rkt     store-with.rkt     variable.rkt
  6. Introduction au lambda-calcul.
  7. Récursivité et paresse.
    letrec-circ.rkt     letrec-mut.rkt     ex_plai_lazy.rkt     ordresup-lazy.rkt     letrec-lazy.rkt     lazy.rkt     more-lazy.rkt
  8. Continuations et erreurs.
    lambda-k.rkt     lambda-k-lazy.rkt     try.rkt     let-cc.rkt
  9. Objets et classes.
    ordresup-oo.rkt     object.rkt     class.rkt     inherit.rkt
  10. Types.
    type.rkt
  11. Sous-typage.
    typed-record.rkt

TP

Annales