Programmation non procédurale Le projet ECOLE 2000

Slides:



Advertisements
Présentations similaires
Sémantique des déclarations pour le langage Z minimal
Advertisements

Algorithmes et structures de données avancés
Spécification et qualité du logiciel
Introduction Pour concrétiser l’enseignement assisté par ordinateur
Conception de Programmes Evolutifs Pré Soutenance de TER Année Encadrants : Cathy Escazut et Michel Gautero Auteurs: Paul-Kenji Cahier Sylvain.
5. La physique appliquée en STS IPM
M.E.D.A.L. Module dEnseignement à Distance pour lArchitecture Logicielle Alain VAILLY Diapositive n° 1 IUP MIAGE - Université de NANTES IUP-MIAGE 3ème.
Régine Laleau Centre d'Étude et de Recherche en Informatique du CNAM
INTRODUCTION.
CSI3525: Concepts des Langages de Programmation Notes # 5: Langages de Programmation Fonctionelle I: Introduction au Scheme.
CSI3525: Concepts des Langages de Programmation Notes # 11: Sous-Programmes ( Lire Chapitre 8 )
Pédagogie par Objectifs
                                        République Algérienne Démocratique et Populaire Ministère de l’Enseignement Supérieur et de la Recherche Scientifique.
Conception et analyse des algorithmes
Logiques Mathématiques
Démarche de résolution de problèmes
Concepts de base : la Classe Pour faire une comparaison simple, une classe serait a priori, une structure C avec des variables et des fonctions.
Algorithmique et Programmation
Graphes Conceptuels J.F. Baget Inria.
Initiation à la conception de systèmes d'information
Programmation logique Logique des prédicats du premier ordre
Programmation logique Démonstrateur automatique
J.B. Lagrange J.M. Gélis Bernard Le Feuvre Xavier Meyrier …..
Fonction exponentielle: enchaînement de théorèmes
Rappels de logique des prédicats du 1er ordre
IFT Complexité et NP-complétude
CSI3525: Concepts des Languages de Programmation
CSI 4506: Introduction à l’intelligence artificielle
Partie II Sémantique.
Séance d’introduction
Programmation logique Le Langage PROLOG
Programmation procédurale Le projet C O N C O R D E
Structures de données IFT-2000 Abder Alikacem La récursivité Semaine 5 Département dinformatique et de génie logiciel Édition Septembre 2009.
Modélisation des opérations Spécifier les transformations détat que lon attend des services de la machine Létat dune machine entièrement déterminée par.
Patrons de conceptions de créations
RAPPEL Qu’est ce qu’une structure de contrôle itérative ?
Travaux Pratiques Représentation des connaissances
Transformation de modèles Kick Off Motor Jean Marc Jézéquel & Didier Vojtisek La vision Triskell : Umlaut NG.
Paradigmes des Langages de Programmation
Présenté par : Attia Hamza Merzouk Abdelkrim 2003/2004
Spécification de programmes et de systèmes
D.E ZEGOUR Ecole Supérieure d’Informatique
Programmation fonctionnelle Lambda-calcul
INTRODUCTION.
D.E ZEGOUR Ecole Supérieure d’Informatique
Algorithmique et programmation (1)‏
Algorithmes et Programmation
Programmation procédurale preuves D. Preuves Preuves sur les R-algorithmes. Règle de l'appel (Hoare). Exemple Preuves sur les B-algorithmes (Floyd) Automatisation.
Foued Mnasri Weal Rekik
© Petko ValtchevUniversité de Montréal Février IFT 2251 Génie Logiciel Conception Hiver 2002 Petko Valtchev.
D.E ZEGOUR Ecole Supérieure d’Informatique. Problèmes de décision Concepts de base Expressions régulières Notation particulière pour exprimer certaines.
Le langage Racket (Lisp)
3.1 DÉTERMINANTS Cours 5.
Interprétation/Génération de code pour le langage Z minimal Pr ZEGOUR DJAMEL EDDINE Ecole Supérieure d’Informatique (ESI)
2008/ Plan du cours 1.Introduction –Contenu du cours 2.Logique mathématique –Calcul propositionnel –Calcul des prédicats –Logique floue et aide à.
1 École des Mines de Saint-Etienne. 158, cours Fauriel Saint-Etienne Cedex 2. Tél Fax Jean-Jacques Girardot
IFT 232 Méthodes de Conception Orientées Objets Introduction.
Algorithmique : Introduction
Programmation fonctionnelle Preuve
Introduction et Généralités sur l’Algorithmique
Intelligence artificielle
CSI 4506: Introduction à l’Intelligence Artificielle
La programmation par objets Principes et concepts Etude de Smalltalk.
Hiver 2004SEG2501 Chapître 41 Chapître 4 SDL – structure d’un système et son comportement.
LOGIQUE ET PROGRAMMATION LOGIQUE
Organisation de la mémoire pour le langage minimal Pr ZEGOUR DJAMEL EDDINE Ecole Supérieure d’Informatique (ESI)
Introduction Module 1.
Algorithmes parallèles
Chap. 3 Récursion et induction. Les définitions par récurrence consistent à construire des objets finis, à partir d'autres, selon certaines règles. Les.
Programmation par contraintes Réalisé par: WETCHA Chaima MOKDED Mohamed Ali FIA3-GL-AL 1 1.
Transcription de la présentation:

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 Les travaux réalisés

Programmation non procédurale Le 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édurale Le 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édurale Le 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édurale Le 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édurale Le 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édurale Le 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édurale Le 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édurale Le 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édurale Le 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édurale Le 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édurale Le 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édurale Le 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édurale Le 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édurale Le 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édurale Le 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édurale Le 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.