14_concorde.pps

publicité
Programmation procédurale
Le projet C O N C O R D E
" Environnement de CONstruction, CORrection et DE
transformation d'algorithmes de tous types."
Proposé par D.E ZEGOUR.
E. Le projet Concorde.
Introduction
Les différents types de schéma
Construction
Correction
Transformation
Objectif pratique
Objectif pédagogique
Programmation procédurale
Le projet C O N C O R D E
• INTRODUCTION
• Synthèse de tous les langages procéduraux.
Synthèse sur l'art de la programmation.
Ne traite que les constructions issues de langages procéduraux.
•
Chaque type de construction reflète un mode de penser, un mode
de conception d'algorithmes.
Langages simples afin de montrer les différents types de
construction.
Ainsi, Concorde considère aussi bien les constructions d'antan
(algorithme avec branchement) que celles évoluées ( algorithme
récursif).
Programmation procédurale
Le projet C O N C O R D E
• CONCORDE : UN GENIE LOGICIEL
• Construction des algorithmes de différents types,
• Correction des algorithmes .
• Transformation des algorithmes.
• AUTRES OBJECTIFS
. Pédagogique
. Pratique
Programmation procédurale
Le projet C O N C O R D E
• TYPES DE CONSTRUCTION
•
O-algorithmes,
A-algorithmes,
R-algorithmes,
B-algorithmes,
D-algorithmes.
Programmation procédurale
Le projet C O N C O R D E
• TYPES DE CONSTRUCTION
• O-ALGORITHME :
Organigramme composé de deux types de formes géométriques:
losange et carré.
A-ALGORITHME
Automate composé d'un ensemble d'états ( représentés par des
cercles ) reliés par des arcs étiquetés par des tests et des actions.
Programmation procédurale
Le projet C O N C O R D E
• TYPES DE CONSTRUCTION
• R-ALGORITHME
Récursivité avec utilisation d'une seule structure de contrôle :( Si
alors Sinon).
B-ALGORITHME
Branchements conditionnels et inconditionnels.
• * D-ALGORITHME
.
Structures de contrôle dues à Dijkstra :(Tantque ..
Fintantque) et (Si Alors Sinon )
Programmation procédurale
Le projet C O N C O R D E
•
CONSTRUCTION
• Outils pour l'écriture d'algorithmes :
. Éditeur syntaxique [Graphique]
. Mode Assisté ou non assisté
. Documentation sur :
- le langage
- sur l'environnement intégré
. Indentation
Exemple :
Pour un D-algorithme, l'utilisateur ne fait qu'entrer les tests et les
actions.
Programmation procédurale
Le projet C O N C O R D E
• CORRECTION
• Trace : Dérouler l'algorithme sur des données particulières
• Évaluation symbolique : Dérouler l'algorithme sur des données
symboliques.
• Démonstration automatique : Correction partielle et totale d'un
algorithme.
Programmation procédurale
Le projet C O N C O R D E
• TRANSFORMATION
• Outils pour passer d'un s-algorithme vers un s'-algorithme, s<>s'
et s, s' dans( B, R, O, A, D)
Ainsi, Concorde permet de passer:
. de tout algorithme récursif en un algorithme itératif,
.de tout algorithme avec branchement en un algorithme itératif,
.d'un automate à un algorithme itératif,
.ect...
• Une taxonomie complète de toutes les transformations est faite,
grâce a quelques transformations que nous avons proposées.
Programmation procédurale
Le projet C O N C O R D E
• OBJECTIFS PRATIQUES
• Réutilisation de vieux logiciels : Restructuration en rendant formel
ce qui ne l'était pas.
• Preuves par héritage : Transformer avant de prouver.
Programmation procédurale
Le projet C O N C O R D E
• OBJECTIFS PEDAGOGIQUES
• Documentation pour chaque type de construction.
• A la portée de toute personne qui veut l'expérimenter.
• Utilisé pour l'enseignement de l'art de la programmation.
• Permet l'écriture d'algorithmes corrects.
• Permet le déroulement des algorithmes.
Programmation procédurale
Le projet C O N C O R D E
• CONCORDE FAIT DES CHOSES PLUS POUSSEES
• Explique le "mystère" de la récursivité.
• Permet la dérécursification d'un algorithme et en explique même
le principe pas à pas.
• Permet le passage d'un algorithme contenant des "GOTO" vers
un autre équivalent n'en contenant pas.
• Entreprend la preuve automatique d'algorithmes récursifs et
assiste l'utilisateur pour prouver des algorithmes non récursifs.
• Ect . . .
Programmation procédurale
Le projet C O N C O R D E
• LES DIFFERENTES PARTIES DU PROJET
• 3 éditeurs syntaxiques + traceurs correspondant aux s-langages
avec s = D, B, R
• 2 éditeurs syntaxiques graphiques + traceurs correspondants aux
s-langages avec s = A, O
• 1 évaluateur symbolique par s-langage.
• des Transformateurs.(Se ramener à un D-algorithme ou un Ralgorithme)
• des prouveurs automatiques (D et R-algorithmes)
Programmation procédurale
Le projet C O N C O R D E
• QUELQUES TRANSFORMATIONS
• Algorithme à branchement
-->> Algorithme structuré.
• Algorithme récursif
-->> Algorithme structuré.
• Algorithme structuré
-->> Algorithme récursif.
Programmation procédurale
Le projet C O N C O R D E
• QUELQUES TRANSFORMATIONS
• Transformations proposées :
Automate
-->
D-algorithme :
• Automates sont plus généraux que les organigrammes. De plus, le
passage vers les D est beaucoup plus simple comparé à celui de
Bohm et Jaccoppini.
• Automates : un outil puissant pour développer des algorithmes
structurés.
Programmation procédurale
Le projet C O N C O R D E
• QUELQUES TRANSFORMATIONS
• Transformations proposées :
B-algorithme -->
Automate
C'est la transformation clé puisque à tout algorithme avec
branchement, on peut construire un automate.
• Nous a permis de concevoir une méthode tout à fait original pour
éliminer les "GOTO".
B-algorithme --> R-algorithme :
• Récursifier n'importe quel type d'algorithmes
Téléchargement