ECTS
5
Établissement
INP - ENSEEIHT
Liste des enseignements
Programmation Fonctionnelle
Établissement
INP - ENSEEIHT
Période de l'année
Automne
La matière est composée de 4 cours magistraux, 4 TD et 6TP. La matière est évaluée par un TP noté sur machine de 3h. Les concepts abordés sont :
- programmation fonctionnelle, sans effet de bord
- récursivité, récursivité terminale
- complexité, terminaison
- structures de données et itérateurs: listes, arbres
- conception modulaire, signatures, foncteurs
Contenu détaillé des séances :
C1 : introduction, syntaxe, notions de base, typage, filtrage
C2 : fonctions récursives, analyse récursive, terminaison et complexité, récursivité terminale
TP1 : premiers pas, fonctions récursives simples
C3 : listes, filtrage, tris et calcul de complexité
TD1 : listes, TAA file
TP2 : tris améliorés
TD2 : itérateurs
TP3 : algorithmes combinatoires et listes
C4 : types récursifs généraux (uniformes), arbres, parcours d’arbres
TD3 : arbres n-aires avec données dans les nœuds et dans les branches
TP4 et TP5 : arbres
TD4 : modules, foncteurs
TP6 : modules, foncteurs
Traduction des Langages
Établissement
INP - ENSEEIHT
Période de l'année
Automne
La matière est composée de 3 cours magistraux, 6 TD et 6TP. La matière est évaluée par un examen sur table de 1h30. Les concepts abordés sont :
- analyse lexicale, syntaxique et sémantique
- Abstract Syntaxe Tree
- table des symboles
- typage (vérification de type)
- génération de code
Le langage d'entrée du compilateur est le langage RAT (constante, variable, fonction, entier, booléen, rationnel, conditionnel, répétition). Le langage de sortie est le langage TAM (machine à pile sans pas de registre). Le compilateur est écrit en OCaml en utilisant Menhir.
Contenu détaillé des séances :
C1 : Introduction à la compilation. Rappel : automate, grammaire, arbre de dérivation + analyse lexicale et syntaxique
TD1 : Manipulation de grammaires, grammaires attribuées
TP1 : Prise en main de Menhir - analyses lexicale, syntaxique et sémantique
C2 : AST, gestion des identifiants, typage (inférence de type avec Mini-ML + contrôle de type avec RAT)
TD2 : Définition de l'AST de RAT + gestion des identifiants à l'aide d'une table des symboles
TP2 : Passe de gestion d'identifiants
TD3 : Typage
TP3 : Passe de typage
C3 : Placement mémoire + génération de code et TAM
TD4 : Placement mémoire
TP4 : Passe de placement mémoire
TD5 : Génération de code
TP5 : Passe de génération de code et TAM
TP6 : Passe de génération de code et TAM
TD6 : Pour aller plus loin (pointeurs, ...) : aide pour le projet
PF et TDL
Établissement
INP - ENSEEIHT
Période de l'année
Automne
Le projet est à réaliser en binôme, hors séances entre mi-novembre et mi-janvier.

