L'objectif de ce cours est de présenter de nouveaux outils de conception de logiciel, basés sur un langage déclaratif Prolog. Un mélange uniforme et homogène de deux théories, le -calcul et la logique des prédicats permet de spécifier des solutions à des problèmes complexes dans les quels la notion de portée est fondamentale. On rencontre ainsi les problèmes de typages, de compilation ou de réécriture de programme ou encore les problèmes de représentation de connaissance en intelligence artificielle. Nous concentrerons notre étude sur deux aspects qui se complètent mutuellement : les nouvelles possibilités offertes par les -termes en tant méthode de représentation de structures de données et les nouveaux outils de controles qui permettent de spécifier des parcours inductifs sur la structure de ces nouveaux objets. Nous insisterons particulièrement sur les questions difficiles posées par la nature de ce mélange de deux théories. Le cours sera illustré par de nombreux exemples dans les quels on pourra constater que, grâce à cette méthode, une spécification peut devenir exécutoire.
Les deux dernières séances sont consacrées à la pratique