BASE DE LA PROGRAMMATION FONCT ET TRADUCTION DES LANGAGES
Objectifs
L'objectif de l'UE est double. L'étudiant doit maîtriser les principes de l'algorithmique et de la programmation sans effet de bord en utilisant la programmation fonctionnelle. Il doit notamment maîtriser les concepts de récursivité, complexité et terminaison des algorithmes. Il doit pouvoir manipuler les listes et les itérateurs, ainsi que les modules et foncteurs. Le langage de programmation associé est le langage OCaml.
Il doit également maîtriser les différentes étapes de la traduction des langages : analyse lexicale, analyse syntaxique et analyse sémantique. Dans la cas particulier de la compilation, il doit connaître quatre phases de l'analyse sémantique : la résolution des identifiants grâce à une table des symboles, le typage, le placement mémoire des variables et la génération de code. L'étudiant réalisera un compilateur qui prendra en langage d'entrée une sous partie du C, qui produira du code pour une machine abstraite à pile. Le compilateur sera lui-même écrit en OCaml.
Bibliographie
• OCaml from the very beginning, John Whitington, 2013
• Développement d’applications avec Objective Caml, Emmanuel Chailloux, Pascal Manoury, Bruno Pagano
• Purely Functional Data Structures, Chris Okasaki, 1999
• Compilers: Principles, Techniques, and Tools (dragon book), Alfred V. Aho, Monica S. Lam, Ravi Sethi, and Jeffrey D. Ullman,, 2007
Organisation
Contact(s)
HURAULT AURELIELieu(x)
- Toulouse