Niveau d'étude
Bac +3
ECTS
6 crédits
Composante
Sciences Fondamentales et Appliquées
Période de l'année
Semestre 6
Description
Cette UE est composée de deux parties :
- programmation fonctionnelle ;
- théorie des langages, analyse lexicale.
Cette UE vise, d'une part, à introduire les concepts fondamentaux de la programmation fonctionnelle (expressions, définitions, fonctions, etc.), la notion de types (types produit et types somme) et de système de typage, le polymorphisme, les fonctionnelles (fonctions d’ordre supérieur) et les différentes stratégies d’évaluation (forte et paresseuse). Le tout sera mis en oeuvre avec un langage de programmation fonctionnelle type OCaml.
D'autre part, cette UE apporte aux étudiants les savoir et savoir-faire nécessaires à la conception d'analyseurs lexicaux, ainsi que les connaissances de base sur les grammaires algébriques :
- automates finis et langages rationnels, application à l'analyse lexicale ;
- mise en pratique de l'analyse lexicale avec des outils comme Flex ou JFlex ;
- grammaires algébriques ;
- conception de grammaires adaptées à un langage donné.
Objectifs
Pour la partie programmation fonctionnelle : comprendre les notions de bases de la programmation fonctionnelle, savoir les mettre en oeuvre et être autonome dans cette mise en oeuvre.
Pour la partie théorie des langages : maîtriser les processus d'analyse lexicale d'un langage et savoir modéliser formellement une grammaire.
Heures d'enseignement
- TDTD14h
- TPTP6h
- CMCM12h
- P-ProjPédagogie par projet18h
Compétences visées
- Programmation fonctionnelle : Proposer une solution algorithmique adéquate à un problème donné
- Projet/Génie logiciel : Concevoir et développer un logiciel dans un contexte scientifique et technique maitrisé