Pré requis pour cette UE :
INF101, MAT110

Programme résumé :
- Types simples, produit, somme ; vérification et inférence de type
- Fonctions : spécification, réalisation
- Composition fonctionnelle et conditionnelle ; analyse descendante, analyse par cas
- Définitions récursives de types et de fonctions ; analyse récurrente, équations récursives, modèles d'analyse
- Constructeurs de types complexes : naturels de Peano, séquences, arbres binaires, ...
- Ordre supérieur : introduction, lambda-notation, fonctions anonymes, description de schémas de programmes
- Expérimentation sur machine : langage : Ocaml ; exploitation des informations fournies par l'interprète du langage (messages d'erreurs, vérification et inférence de type) ; problématique de test et de mise au point des programmes : observation de traces d'exécution.

Compétences visées :
- Connaître les constituants de base d'un langage de programmation fonctionnel
- Savoir modéliser l'information grâce à une hiérarchie de types, vérifier et inférer le type d'une expression
- Connaître les définitions récursives des naturels, séquences et arbres et leurs modèles d'analyse associés ; savoir les utiliser pour la définition de type récursifs et la conception de programmes récursifs.
- Savoir séparer, lors de la résolution d'un problème informatique, les phases d'analyse, de spécification, de réalisation et de tests.
- Savoir conduire divers types d'analyse : descendante, par cas, récursive ; savoir réutiliser des modèles de solutions.
- Savoir exploiter les règles sémantiques d'un langage lors de la validation de solutions.
- Connaître les notions de base de la programmation d'ordre supérieur

Introduction à la programmation en langage C.

Utilisation d'un système POSIX.

This lecture provides an introduction to functional algorithmic/programming. It uses the OCaml programming language as a support language.

Lecturer: Ylies Falcone.

Teaching Assistant: Manuel Atencia.