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

FIACRE -- Un langage formel pour systèmes temps - afsec - Front : Fiacre → AT - Frac : AT → TTS/TINA

Plus en détail