FRAC – Compilateur Fiacre vers TINA - afsec
Transcription
FRAC – Compilateur Fiacre vers TINA - afsec
FRAC – Compilateur Fiacre vers TINA B. Berthomieu, R. Saad, S. Dal Zilio, F. Vernadat CNRS/LAAS – Université de Toulouse, France AFSEC – Janvier 2009 Toulouse Plan FIACRE TINA FRAC Démo TINA – Boite à outils nd Editeur graphique et textuel de réseaux temporels et d’automates Interfacé avec outils d’abstraction et de vérification tina (TIme petri Net Analyser) Génère abstractions de comportements Préservant famille choisie de propriétés Sortie en clair ou formats dédiés selt, muse Vérificateurs de modèles pour logiques temporelles plan Analyseur/synthétiseur de chemins temporisés struct, ktzio, ndrio, etc TINA (TIme petri Net Analyser) Entrées : Modèles formels Réseaux de Petri + Contraintes temporelles + Priorités + Chronomètres (Suspension/Reprise d’actions) + Données externes (API tts) Descriptions de haut niveau (compilées): Cotre, FIACRE Sortie : Abstractions de comportement Graphes de couverture Espaces d’états Réductions ordre partiel Graphes de classes Tina – Architecture Tina – format TTS (Time Transition Systems) Réseau de Petri (.net) : Structure de Contrôle Contraintes temporelles Contraintes de priorité Prédicats/Actions externes (.dll/.so/.dylib), API : Etat initial (données) Pour chaque transition du réseau de contrôle: Fonction Précondition sur les données Fonction de Changement d’état des données Relation de Conflit entre transitions Fonctions auxiliaires (impression, observation, etc) Le vérificateur SELT Formules S/E-LTL : , , ♦ + arithmétique (propriétés à valeurs entières) e.g. (t1 ⇒ ♦(p2 ≥ p3 + p4 ∨ p6)) Contre exemples Abrégés - [] (t1 => <> t4); FALSE state 0: p1 p2*2 -t1 ... (preserving - t4 /\ t1)-> * [accepting] state 12: p3 p4 p5 -t5 ... (preserving - t4)-> state 12: p3 p4 p5 Peuvent être rejoués dans le simulateur Tina Outillage Fiacre (1/2) Quelques dates Meta-modèle (07/07) Sémantique formelle (07/07) LAAS-CNRS - Front: Fiacre → AT (07/07) - Frac : AT → TTS/TINA (V1 10/07, V2 10/08) INRIA/VASY - Flac : AT → LOTOS/CADP (V2 03/08) Outillage Fiacre (2/2) Front : front-end (commun pour Flac et Frac) Parser (lex, yacc) & Contrôle de types → AST annoté Typage, initialisations, communications, autres contraintes statiques Frac : back-end pour Tina-TTS Réduction des constructions dérivées (select, any, etc) → Core-AST Composition statique des composants → TTS abstrait Mise à plat, Instantiations, Passage des paramètres Optimisations → TTS optimisé Analyse des variables (constantes, temporaires, variables d’état) Normalisation des transitions (garde, action, intervalle temporel, priorités) Génération de code → .tts .tts = Réseau de Petri (.net) + Traitement données (.c, API TTS) Librairie partagée (.dll/.so/.dylib) produite par gcc depuis .c Quelques liens tina: http://www.laas.fr/tina frac precompile pour diverses cibles: http://gforge.enseeiht.fr/projects/fiacre ou: http://www.laas.fr/~bernard/fiacre sources frac et flac: http://gforge.enseeiht.fr/projects/fiacre-compil/ Démonstration
Documents pareils
FIACRE -- Un langage formel pour systèmes temps - afsec
- Front : Fiacre → AT
- Frac : AT → TTS/TINA