• Composante

    École Nationale Supérieure d'Électrotechnique d'Électronique d'Informatique d'Hydraulique et des Télécommunications

Objectifs

La programmation déclarative est un paradigme de programmation qui consiste à
décrire les *problèmes* plutôt que les *solutions* (le *quoi* plutôt que le
*comment*), et de laisser un moteur ou un compilateur résoudre lesdits 
problèmes. Cela se distingue de la programmation impérative typiquement, qui s'attache à décrire comment trouver une solution à un problème spécifique à l'aide de structures de contrôle et de variables.

Le but de cette matière est d'introduire les étudiants à ce paradigme, assez différent de ce qu'ils ont vu auparavant, et nécessitant de réfléchir à d'autres manières de concevoir un programme informatique.

Lire plus

Description

La matière gravite autour de plusieurs cours visant à introduire différentes techniques et outils formels pour la modélisation de problèmes (programmation
logique, réseaux de contraintes, problèmes SAT/SMT), ainsi que pour leur résolution automatique (système résolution + branch-and-bound/branch-and-prune,
arbres de décision, réduction de symétries...).

La théorie abordée en cours est mise en pratique au travers de divers TP, introduisant des technologies comme Prolog (programmation logique) et Z3
(solveur SAT/SMT), et amenant les étudiants à modéliser des problèmes divers (problèmes combinatoires, problèmes d'opitimization en variables entières,
résolution de sudoku, synthèse d'expressions arithmétiques...).

Les compétences relatives à cette matière sont validées par une bureau d'étude (TP noté) qui recouvre l'ensemble des connaissances et techniques abordées au
fil des cours et des TP.

Lire plus

Pré-requis obligatoires

 - Logique et preuve
 - Programmation fonctionnelle

Lire plus