UMR CNRS 6599 Heuristique et Diagnostic des Systèmes Complexes CNAM – 13 et 14 Juin 2002 ABTools : un environnement de prototypage pour la méthode B Boulanger.

Slides:



Advertisements
Présentations similaires
Un environnement de développement éducatif
Advertisements

Présentation du prototype :
Le tampon à deux places Une idée de Steve Dunne, University of Teesside Présentée dans cet amphi en 2002.
C#3 et le projet Linq Mitsuru FURUTA
1 3.Langage XSL = XSLT + XSL-FO transformationFormatage.
Première expérience d’utilisation des Web Services dans SmartTools Didier Parigot Projet OASIS INRIA Sophia www-sop.inria.fr/oasis/SmartTools Journée.
Le langage de requêtes SPARQL SPARQL Protocol And RDF Query Language
Eclipse Plug-ins Factory
Spécification et qualité du logiciel
Au programme du jour …. Ce que vous navez pas encore vu Constantes et variables de classe Main et Tests Utilisation de lAPI Existence des packages Existence.
Calculs de complexité d'algorithmes
LIFE Fest – Paris – 13/06/ SCORM 2004 et LOMfr dans SCENARI Erik Gebers Université de Technologie de Compiègne Laboratoire HeuDiaSyC – UMR CNRS 6599.
JXDVDTEK – Une DVDthèque en Java et XML
TER Gestionnaires de contenu en ligne
XML schema Objectifs Valider un doc. XML pour des contraintes syntaxiques Documenter un type de documents XML caractérisé par des contraintes Encadrer.
Premiers pas avec Apache Ant Par Guillaume BITAUDEAU Le 16/10/2003.
Régine Laleau Centre d'Étude et de Recherche en Informatique du CNAM
Les technologies XML Cours 3 : Les APIS XML Janvier Version 1.0 -
Test et Validation du Logiciel
le langage les éléments
Mise en œuvre d’un programme
LICENCE MIAGE Introduction Programmation Orientée Objet JAVA philippe
Manipulation d’XML avec XSL
Cours DESS Nantes 04 Décembre 2002
Quoi ? Un tampon.
Titre conférence lundi 27 mars 2017
Projet 4info.
1 ARCHITECTURE DACCÈS la méthode générale modèle de données définitions module daccès / modules métiers construction des modèles les modules daccès, les.
Points importants de la semaine Les commentaires. Les variables. Les instructions conditionnelles. Les instructions itératives (les boucles).
44 Contrôle du déroulement du programme. 4-2 Objectifs A la fin de ce cours, vous serez capables de : Utiliser les constructions de prise de décision.
XML-Family Web Services Description Language W.S.D.L.
IFT313 Introduction aux langages formels
Algorithmique et Programmation
77 Utilisation des classes (suite). 7-2 Objectifs A la fin de ce cours, vous serez capables de : Définir des méthodes surchargées dans une classe Fournir.
66 Utilisation des classes et des objets. 6-2 Objectifs A la fin de ce cours, vous serez capables de : Créer de nouvelles classes à laide de Eclipse Utiliser.
Révision des notions OO et Java Semaine 1 Jian-Yun Nie.
XSLT Langage de transformation darbre par Yves Bekkers.
Principes de programmation (suite)
CSI3525: Concepts des Languages de Programmation
1 PHP 1.Langage PHP 1.1. Types de base, variables et constantes 1.2. Opérateurs et expressions 1.3. Instructions 1.4. Fonctions 2.Accès aux bases de données:
Ift 2251 Introduction au Génie Logiciel
Révisions - IA Généralité: problèmes de lIA Recherche Logique Traitement de lincertitude Apprentissage Langue naturelle.
Chapitre 3 Syntaxe et sémantique.
Partie II Sémantique.
NORMALISATION DES LANGAGES DE PROGRAMMATION des Automates Programmables Industriels CEI Jean-Jacques DUMÉRY -1-
99 Réutilisation du code grâce à l'héritage. 9-2 Objectifs À la fin de ce cours, vous serez capables de : Définir l'héritage Utiliser l'héritage pour.
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.
Procédures Stockées Schedule: Timing Topic 60 minutes Lecture
NORMALISATION DES LANGAGES DE PROGRAMMATION des Automates Programmables Industriels CEI
Implémentation OAI-PMH CNDP – Jérôme Martin
Les assertions en Java.
8 - XML Cours XML.
Introduction au langage PHP Licence Pro Cours Internet / Intranet Utilité Historique Exemples Fonctions PHP Classes.
Introduction à l’environnement logiciel Clips
Guillaume TORRENTE Marc BOUISSOU Recherche & Développement
Projet de semestre Responsable :Prof. Claude Petitpierre Superviseur :Duy Vo Duc.
Raffinement de modèles JML Julien Groslambert LIFC Besançon Réunion GECCOO - 25 Octobre 2005 FRE 2661.
Spécification de Demoney en JML par raffinement Pierre-Alain Masson, Julien Groslambert LIFC Besançon Réunion GECCOO - 10 mars 2006 FRE 2661.
Paradigmes des Langages de Programmation
Packages et Types De la Spécification Formelle A l'implémentation Ada.
Créer des packages.
« Validation Formelle de Systèmes Interactifs »
420-B63 Programmation Web Avancée Auteur : Frédéric Thériault 1.
Le langage Z minimal Pr ZEGOUR DJAMEL EDDINE
Disponibilité de production Dassault
Sélection de colonnes (la projection)
Conception Formelle en PVS Master 2 ISC Chef de Projet: M. Pierre Castéran Présenté par: Roland Atoui Xavier Dumas Sébastien Jardel Laurent Vendredi.
Interface de génération de blason
SOAP et les RPC XML SOAP WSDL RPC. Rappels sur le XML Langage avec des balises Très lisible Pour stocker des données Séparation entre contenu et présentation.
1 Les bases de données Séance 5 -- Le Langage de Définition de Données ou la manœuvre de la structure de la base -- Le Langage de Manœuvre de Données.
Transcription de la présentation:

UMR CNRS 6599 Heuristique et Diagnostic des Systèmes Complexes CNAM – 13 et 14 Juin 2002 ABTools : un environnement de prototypage pour la méthode B Boulanger Jean-Louis Heudiasyc UMR CNRS 6599 Université de Technologie de Compiègne

UMR CNRS 6599 Heuristique et Diagnostic des Systèmes Complexes CNAM – 13 et 14 Juin 2002 Plan Quoi de neuf ? Exemple de mise en place dune extension B. Conclusion

UMR CNRS 6599 Heuristique et Diagnostic des Systèmes Complexes CNAM – 13 et 14 Juin 2002 Quoi de neuf ? ABTools 0.3.2

UMR CNRS 6599 Heuristique et Diagnostic des Systèmes Complexes CNAM – 13 et 14 Juin 2002 État des lieux B Classic –Lexeur/Parseur: OK –Décompileur graphique: OK –Décompileur textuel (ASCII, XML, LATEX et HTML): OK –Typeur (générique): Finalisation –Normalisateur (retrait des définitions): Finalisation –GOP: Début B Prime –Lexeur/Parseur: OK –Décompileur graphique: OK –Décompileur textuel (ASCII, XML, LATEX et HTML): OK B Système –Lexeur/Parseur: OK –Décompileur graphique: OK –Décompileur textuel (ASCII, XML, LATEX et HTML): OK B Event –Lexeur/Parseur: OK –Décompileur graphique: OK –Décompileur textuel (ASCII, XML, LATEX et HTML): OK

UMR CNRS 6599 Heuristique et Diagnostic des Systèmes Complexes CNAM – 13 et 14 Juin 2002 Outils utilisés ANTLR 2.7.2a – JAVA 2 v 1.4

UMR CNRS 6599 Heuristique et Diagnostic des Systèmes Complexes CNAM – 13 et 14 Juin 2002 Exemple dextension Prototypage du B événementiel

UMR CNRS 6599 Heuristique et Diagnostic des Systèmes Complexes CNAM – 13 et 14 Juin 2002 B événementiel Projet MATISSE : Documentation –Manuel de Référence Défini comme une extension du MR B –Manuel Utilisateur Bevent2B Un outil utilisant le kernel

UMR CNRS 6599 Heuristique et Diagnostic des Systèmes Complexes CNAM – 13 et 14 Juin 2002 Intégration dans ABTools Création de larbre syntaxique: –Définir un lexer et un parser Décompilation –Définir un parcoureur darbre (treewalker) Génération dun code B équivalent –Définir un parcoureur darbre (treewalker)

UMR CNRS 6599 Heuristique et Diagnostic des Systèmes Complexes CNAM – 13 et 14 Juin 2002 Parsing Nous disposons dune grammaire déjà validée, et tout comme cela est fait dans le MU, il « suffit » de létendre. –BEvent hérite de B –BEvent surcharge certaines règles de B –BEvent introduit de nouvelles règles

UMR CNRS 6599 Heuristique et Diagnostic des Systèmes Complexes CNAM – 13 et 14 Juin 2002 Composant B système Component ::= Abstract_system | Refinement* composant [boolean loadLinked] : { LoadLinked = loadLinked; } ( machine | refinement | /* Empty sources files are *not* allowed. */ { System.err.println ( "ABParser Warning : Empty source file!" ); errors.WSyntaxic ( "BEvent.g", "The file is empty" ); } ) ;

UMR CNRS 6599 Heuristique et Diagnostic des Systèmes Complexes CNAM – 13 et 14 Juin 2002 Description dun système (1) System_abstract ::= "SYSTEM" Header Clause_system_abstract* "END" Clause_system_abstract ::= Clause_constraints | Clause_sees | Clause_sets | Clause_concrete_constants | Clause_abstract_constants | Clause_properties | Clause_concrete_variables | Clause_abstract_variables | Clause_invariant | Clause_assertions | Clause_initialization | Clause_events | Clause_modalities

UMR CNRS 6599 Heuristique et Diagnostic des Systèmes Complexes CNAM – 13 et 14 Juin 2002 Description dun système (2) machine: B_SYSTEM^ paramName (constraints |sees |sets |constants |aconstants |properties |variables |cvariables |invariant |assertions |initialisation_mch |events_mch |modalities )* B_END! EOF! ;

UMR CNRS 6599 Heuristique et Diagnostic des Systèmes Complexes CNAM – 13 et 14 Juin 2002 Rappel MR B Instruction Instruction_corps_opération Substitution Substitution_corps_opération

UMR CNRS 6599 Heuristique et Diagnostic des Systèmes Complexes CNAM – 13 et 14 Juin 2002 ANY avec post-condition (1) Substitution_unbounded_choice_postcondition ::= "ANY" Ident_ren+, "WHERE " Predicate "THEN" Substitution "POST" Predicate "END"

UMR CNRS 6599 Heuristique et Diagnostic des Systèmes Complexes CNAM – 13 et 14 Juin 2002 ANY avec post-condition (2) substitution_unbounded_choice_postcondition_ mch: B_ANY^ listIdentifier B_WHERE! expression B_THEN! substitution_mch B_POST! predicate B_END! ;

UMR CNRS 6599 Heuristique et Diagnostic des Systèmes Complexes CNAM – 13 et 14 Juin 2002 Les raffinements (1) Refinement ::= "Refinement" Header Clause_refinement* "END" Clause_refinement ::= Clause_constraints | Clause_sees | Clause_variant | Clause_sets | Clause_concrete_constants | Clause_abstract_constants | Clause_properties | Clause_concrete_variables | Clause_abstract_variables | Clause_invariant | Clause_assertions |Clause_initialization |Clause_events |Clause_modalities

UMR CNRS 6599 Heuristique et Diagnostic des Systèmes Complexes CNAM – 13 et 14 Juin 2002 Les raffinements (2) refinement: B_REFINEMENT^ paramName (refines |constraints |sees |sets |aconstants |constants |properties |variables |cvariables |invariant |variant |assertions |initialisation_ref |events_ref |modalities )* B_END! EOF! ;

UMR CNRS 6599 Heuristique et Diagnostic des Systèmes Complexes CNAM – 13 et 14 Juin 2002 Variant MR –Clause_variant ::= VARIANT Variant –Variant ::= Expression_arithmetical ABTools –variant :B_VARIANT^ a_variant; –a_variant : predicate ; –Plus une règle de typage

UMR CNRS 6599 Heuristique et Diagnostic des Systèmes Complexes CNAM – 13 et 14 Juin 2002 Variable « prime » REFINEMENT toy_1 REFINES toy VARIABLES aa, bb INVARIANT bb: 0..aa & (bb=aa y bb=bb) VARIANT aa-bb INITIALISATION aa, bb := 0, 0 EVENTS ev1 = ANY xx WHERE xx: N & bb = aa THEN aa, bb := xx, 0 END ;ev2 = SELECT bb<aa THEN bb := bb +1 END END Confusion avec ab qui est la manipulation de champs de record

UMR CNRS 6599 Heuristique et Diagnostic des Systèmes Complexes CNAM – 13 et 14 Juin 2002 Les Events du MR Clause_events ::= "EVENTS" Event+";" Event ::= Ident_ren [ref Ident_ren+","] "=" Substitution_event_body Substitution_event_body ::= Substitution_bloc | Substitution_postcondition | Substitution_selection | Substitution_selection_postcondition | Substitution_unbounded_choice | Substitution_unbounded_choice_postcondition

UMR CNRS 6599 Heuristique et Diagnostic des Systèmes Complexes CNAM – 13 et 14 Juin 2002 Pour une machine eventMch: nameRenamed c:B_EQUAL^ {#c.setType(OP_DEF);} substitution_event_mch ; substitution_event_mch : substitution_mch |substitution_block_postcondition_mch |substitution_precondition_postcondition_mch |substitution_selection_mch |substitution_selection_postcondition_mch |substitution_unbounded_choice_mch |substitution_unbounded_choice_postcondition_mch ;

UMR CNRS 6599 Heuristique et Diagnostic des Systèmes Complexes CNAM – 13 et 14 Juin 2002 Et pour un raffinement eventRef: an_event_ref c:B_EQUAL^ {#c.setType(OP_DEF);} substitution_event_ref ; an_event_ref: nameRenamed (B_REF^ listNameRenamed)? ; listNameRenamed: nameRenamed (B_COMMA^ nameRenamed)*; substitution_event_ref : parallele_ref |substitution_block_postcondition_ref |substitution_precondition_postcondition_ref |substitution_selection_ref |substitution_selection_postcondition_ref |substitution_unbounded_choice_ref | substitution_unbounded_choice_postcondition_ref;

UMR CNRS 6599 Heuristique et Diagnostic des Systèmes Complexes CNAM – 13 et 14 Juin 2002 Mais ça ne marche pas …. Il nest pas possible de définir un k permettant de distinguer les substitutions B des substitutions POST Exemple –BEGIN substitution END –BEGIN substitution POST predicat END

UMR CNRS 6599 Heuristique et Diagnostic des Systèmes Complexes CNAM – 13 et 14 Juin 2002 Une « bonne » solution Surcharger les règles définissant les substitutions: substitution_event_mch : substitution_mch ; Substitution_block_mch : « BEGIN »^ substitution_mch (« POST »^ predicat)? ; On a un arbre du type: POST BEGIN substitution predicat

UMR CNRS 6599 Heuristique et Diagnostic des Systèmes Complexes CNAM – 13 et 14 Juin 2002 Parcoureur darbre class EventTreeWalker extends TreeWalker; options { importVocab = BEvent; buildAST = false; ASTLabelType = "MyNode"; codeGenMakeSwitchThreshold = 3; codeGenBitsetTestThreshold = 4; k = 1; }

UMR CNRS 6599 Heuristique et Diagnostic des Systèmes Complexes CNAM – 13 et 14 Juin 2002 Traitement de la machine machine : #(tt:B_SYSTEM { index.Add(); printToStringln(out.Clause(tt.getText())); } paramName { printToStringln(""); } clauses { printToString(out.Clause("END")); } ) ;

UMR CNRS 6599 Heuristique et Diagnostic des Systèmes Complexes CNAM – 13 et 14 Juin 2002 Conclusion

UMR CNRS 6599 Heuristique et Diagnostic des Systèmes Complexes CNAM – 13 et 14 Juin 2002 Ce qui est fait … ….et Ce qui reste à faire Prévu: –Parser B Event :OK –Décompileur B Event:OK –Typeur:OK –Générateur de B:A faire A faire –GOP –Animateur de spécification B Event

UMR CNRS 6599 Heuristique et Diagnostic des Systèmes Complexes CNAM – 13 et 14 Juin 2002 Quelques métriques Temps passé –Parseur moins dun jour –Décompilateur \\ –Evolution du typeur\\

UMR CNRS 6599 Heuristique et Diagnostic des Systèmes Complexes CNAM – 13 et 14 Juin 2002 Intérêts Prototypage rapide, –Un langage unique de description –Ce langage manipule directement les AST –Peu de code manuel –Génération de Code (C++, JAVA) –Génération de DOC (HTML, XML) Obtenir une formalisation des concepts mis en place

UMR CNRS 6599 Heuristique et Diagnostic des Systèmes Complexes CNAM – 13 et 14 Juin 2002 Résultats Parsing et décompilation de tous les exemples présentés dans le MR et MU.

UMR CNRS 6599 Heuristique et Diagnostic des Systèmes Complexes CNAM – 13 et 14 Juin 2002 Download