170 likes | 308 Views
Programmation non procédurale Le projet ECOLE 2000 ECOLE 2000, un Environnement de COnstruction, et d’évaluation d’aLgorithmEs logiques, fonctionnels et orientés objet. Proposé par D.E ZEGOUR. Le projet ECOLE 2000. Introduction Phase de construction Phase d ’évaluation
E N D
Programmation non procéduraleLe projet ECOLE 2000 • ECOLE 2000, un Environnement de COnstruction, et d’évaluation d’aLgorithmEs logiques, fonctionnels et orientés objet. • Proposé par D.E ZEGOUR. • Le projet ECOLE 2000. • Introduction • Phase de construction • Phase d ’évaluation • Les travaux réalisés
Programmation non procéduraleLe projet ECOLE 2000 • INTRODUCTION • Le projet "Concorde", prédécesseur du projet ECOLE 2000 ne s'intéressait qu'aux langages procéduraux. • ECOLE 2000 permet de faire une synthèse sur les langages non procéduraux tels que les langages fonctionnels, logiques et orientés objets.
Programmation non procéduraleLe projet ECOLE 2000 • Génie logiciel • Il s'agit de concevoir un ensemble d'outils ( génie logiciel) pour pouvoir : • écrire et construire des algorithmes de différents types • les évaluer et les prouver • les transformer
Programmation non procéduraleLe projet ECOLE 2000 • Phase de construction : • Nous désignons par s-algorithme une solution d'un problème donné exprimé dans un s-langage. • Dans notre projet, nous considérons les types d'algorithmes suivants : • F-algorithmes, L-algorithmes, OO-algorithmes • correspondant aux langages F, L, OO
Programmation non procéduraleLe projet ECOLE 2000 • Phase de construction : • F-langage : L'algorithme est exprimé à travers une composition de fonctions. Deux approches seront traitées : avec variables et sans variables ( combinateurs ). • L-langage : L'algorithme est exprimé sous forme d'un ensemble d'assertions et de règles. • OO- langage : L'algorithme est un ensemble d'objets. On distinguera les approches par classes, par frames et par acteurs.
Programmation non procéduraleLe projet ECOLE 2000 • Phase d'évaluation : • L'évaluation se fait à travers • - un démonstrateur automatique pour les langages logiques • - un réducteur d'expressions sur un langage pivot ( le lambda-calcul) pour les langages fonctionnels. • L'aspect preuve est aussi développé dans cette partie utilisant la théorie du point fixe et des systèmes formels.
Programmation non procéduraleLe projet ECOLE 2000 • Fenêtre sur Concorde : • Il s'agit ici d'étudier les passages entre les langages non procéduraux et procéduraux.
Programmation non procéduraleLe projet ECOLE 2000 • 1. Environnement de construction d’algorithmes fonctionnels et de transformation vers des lambda expressions (?_ calcul) . • Réalisation d’un environnement de construction et de transformation d‘algorithmes fonctionnels avec variables . • Il s‘agit de définir un langage fonctionnel en déterminant sa syntaxe et sa sémantique puis développer les outils suivants : • - Des outils syntaxiques d ‘ aide à la construction des programmes. • - Un traducteur vers un langage pivot (?_ calcul) . • - un traducteur vers un langage procédural.
Programmation non procéduraleLe projet ECOLE 2000 • 2. Environnement de construction d’algorithmes logiques et de transformation vers des formes clausales • Il s’agit de concevoir et de réaliser un environnement de construction, correction et transformation de programmes logiques appartenant au langage LOGFC qu’on a conçu au préalable. • Le code généré est la forme clausale, qui constitue le code pivot pour le mécanisme de résolution appliqué lors de l’interprétation des programmes logiques. • L’édition d’un programme LOGFC peut s’effectuer en deux modes : assisté ou non assisté, tous deux accompagnés d’un système d’aide.
Programmation non procéduraleLe projet ECOLE 2000 • 3. Réalisation d’un moteur d’inférence pour un prototype de langage logique (LOGFC) • Ce travail consiste à développer un démonstrateur de théorèmes pour l’exécution de programmes logiques (sous forme clausale) en adoptant différentes stratégies de la résolution de Robinson et l’intégrer dans l’application déjà réalisée. • L’application est doté d’un outil qui permet de transformer toute formule de la logique des prédicats du premier ordre vers une forme clausale équivalente.
Programmation non procéduraleLe projet ECOLE 2000 • 4. Machine à réduction pour un langage de programmation fonctionnelle (avec variable). • Il s’agit de développer une machine pour l’évaluation de programmes fonctionnels ( sous forme de ?-expressions) en adoptant différentes stratégies de la ?-conversion ( évaluation par valeur, par nécessité , paresseuse, ... ) et l’intégrer dans l’application déjà réalisée. • L’application est doté d’un outil qui permet de vérifier l’équivalence de fonctions mathématiques écrites sous forme usuelle ( Interconvertibilité de ?-expressions)
Programmation non procéduraleLe projet ECOLE 2000 • 5. Environnement de programmation objet ‘par classe’ • Il s’agit de concevoir un langage purement objet en s’inspirant de langages existants, pourvu au moins des caractéristiques suivantes : • Encapsulation , Héritage, Polymorphisme, Classes génériques, Typage dynamique • Le travail consiste à développer un environnement de construction de programmes objet ainsi qu’un interpréteur capable de résoudre les techniques de la programmation objet pure ( caractéristiques citées)
Programmation non procéduraleLe projet ECOLE 2000 • 6- Environnement de construction et d’interprétation pour un prototype de langage Objet par ‘Frame’. • Dans la programmation par ‘frame’, le graphe d’héritage est typiquement dynamique. Aussi, contrairement à la programmation par classe, chaque objet ( frame ) est en même temps considéré comme instance et générateur d’autres objets.
Programmation non procéduraleLe projet ECOLE 2000 • 6- Environnement de construction et d’interprétation pour un prototype de langage Objet par ‘Frame’. • Conception d’ un langage objet typiquement par ‘Frame’ en faisant ressortir les différents concepts de ce mode de programmation. • - l’implémentation de ces concepts dans le but de l’élaboration d’un interpréteur. • - au développement d’ un environnement pédagogique de programmation facilitant la construction des programmes par ‘frames’ du langage proposé et montrant les différents aspects liés à ce type de programmation.
Programmation non procéduraleLe projet ECOLE 2000 • 7- Environnement de construction et d’interprétation pour un prototype de langage Objet par ‘Acteur’. • Dans la programmation par ‘acteur’, les objets (acteurs) accomplissent des taches indépendantes (scripts )et se communiquent par envois de messages. Ce qui implique un parallélisme au niveau des traitements.
Programmation non procéduraleLe projet ECOLE 2000 • 7- Environnement de construction et d’interprétation pour un prototype de langage Objet par ‘Acteur’. • Ceci revient à • - concevoir un langage objet typiquement par ‘Acteur’ en faisant ressortir les différents concepts de ce mode de programmation. • - implémenter ces concepts dans le but d’élaborer un interpréteur simulant le parallélisme. • - développer un environnement pédagogique de programmation facilitant la construction des programmes par ‘Acteurs’ du langage proposé et montrant les différents aspects liés à ce type de programmation.
Programmation non procéduraleLe projet ECOLE 2000 • 8. Environnement de programmation fonctionnelle sans variable. • Il s’agit de concevoir un langage typiquement fonctionnel, inspiré du langage Fp, dans lequel la programmation se fait sans l’utilisation de variables. • Deux aspects sont développés : • - passage vers un langage pivot : logique combinatoire • - écriture d’une machine à réduction pour évaluer les formes combinatoires. • Le produit est conçu de telle sorte pour qu’il soit utilisé à des fins pédagogiques.