La mthode formelle B
Gnration de code
Dorian Petit
dorian.petit@inrets.fr
INRETS-ESTAS / LAMIH-ROI
G. Mariano / V. Poirriez
Plan de la prsentation
Pourquoi les utiliser ?
Panorama (succint)
La mthode
Mthode
: gnration de code
Conclusions et perspectives
Plan de la prsentation
Pourquoi les utiliser ?
Panorama (succint)
La mthode
Mthode
: gnration de code
Conclusions et perspectives
Acceptation
Conception
globale
Tests
dintgration
Analyse des
besoins
Conception
globale
Preuves
Conception
detaille
Tests
unitaires
Conception
detaille
Preuves
Code
Code
Plan de la prsentation
Pourquoi les utiliser ?
Panorama (succint)
La mthode
Mthode
: gnration de code
Conclusions et perspectives
Quelques utilisations
Logiciels embarqus
PAE METEOR (Matra Transport)
interprteur bytecode JavaCard (Gem+)
Protocoles de communications
...
Tout logiciel dont le disfonctionnement est
inacceptable
Plan de la prsentation
Pourquoi les utiliser ?
Panorama (succint)
La mthode
Mthode
: gnration de code
Conclusions et perspectives
La mthode B : gnralits
Historique :
Initie par J.R. Abrial au dbut des annes 80
Similitude avec Z et VDM
Industrialise grce la convention B :
STRIA, RATP, SNCF et INRETS
Puis par : ALSTHOM, MTI
La mthode B : gnralits
Historique :
Initie par J.R. Abrial au dbut des annes 80
Similitude avec Z et VDM
Industrialise grce la convention B :
STRIA, RATP, SNCF et INRETS
Puis par : ALSTHOM, MTI
Constituants de B :
Thorie des ensembles
Substitutions gnralises
Machines abstraites (modules)
Raffinement avec obligations de preuves
La mthode B : gnralits
Historique :
Initie par J.R. Abrial au dbut des annes 80
Similitude avec Z et VDM
Industrialise grce la convention B :
STRIA, RATP, SNCF et INRETS
Puis par : ALSTHOM, MTI
Constituants de B :
Thorie des ensembles
Substitutions gnralises
Machines abstraites (modules)
Raffinement avec obligations de preuves
Outils :
Atelier de Clearsy (ex STRIA)
B toolkit de B-Core
Sminaire LAMIH-ROI p.15/44
Raffinement 1
Raffinements successifs
Raffinement n
Implantation
Code cible
Mthode
Avantages :
Couvre tout le processus de dveloppement :
de la spcification au code
Base sur une thorie simple (thorie des
ensembles)
Outils existants = botes noires
Inconvnients :
Manque de formalisation sur certains points
Encore trop li lindustrie ferroviaire franaise ?
Dfinitions
Composant :
une machine (abstraite), un raffinement ou une
implantation
compos de clauses
Module :
la runion dune machine, de raffinements (0..n) et
dune implantation
4 clauses de liaisons (principales) :
IMPORTS, INCLUDES, SEES et USES
Un module
Mthode
: dcomposition
B Mod ul e
Proo f s
M ac hi ne
Re f i ne m e nt
I m p l e m e ntati o n
Cod e
Sminaire LAMIH-ROI p.19/44
Substitutions Gnralises
Substitution lmentaire :
x := e
Prcondition :
PRE P THEN S END
Garde :
SELECT P THEN S (WHEN Pi THEN Si)* END
Choix non dterministe born :
CHOICE S1 OR S2 ... END
Choix non dterministe non born :
ANY X WHERE P THEN S END
Parallle :
S1 || S2
Identit :
skip
Squencement, if, while ...
Sminaire LAMIH-ROI p.20/44
Un exemple de machine
MACHINE
INVARIANT x
VARIABLES x
INITIALISATION
x := 0
OPERATIONS
v <- get == BEGIN v := x END
set (v) ==
PRE v
BEGIN
THEN x := v END
END
END
Un exemple de raffinement
MACHINE
M
VARIABLES
x
INVARIANT
INITIALISATION
x := 0
OPERATIONS
op == BEGIN x := 4 END
END
Sminaire LAMIH-ROI p.22/44
Un exemple de raffinement
MACHINE
M
REFINEMENT
R
REFINES
M
VARIABLES
y
INVARIANT
INITIALISATION
x := 0
OPERATIONS
op == BEGIN x := 4 END
END
INVARIANT
VARIABLES
INITIALISATION
y := 10
OPERATIONS
op == BEGIN x := 7 END
END
Sminaire LAMIH-ROI p.22/44
VARIABLES
x
INVARIANT
INITIALISATION
N
OPERATIONS
op == skip
END
Sminaire LAMIH-ROI p.23/44
REFINEMENT
M_r
REFINES
M
VARIABLES
x
INVARIANT
x
INITIALISATION
N
INVARIANT
VARIABLES
INITIALISATION
x := 0
OPERATIONS
OPERATIONS
op == skip
op == ...
END
END
Sminaire LAMIH-ROI p.23/44
Importation
MACHINE
IMPLEMENTATION
M_IMP
REFINES
VARIABLES
x
M
IMPORTS
INVARIANT
A.PROTECTED_VAR
INITIALISATION
x := 0
OPERATIONS
OPERATIONS
set (v) ==
set (v) ==
BEGIN
PRE v
END
END
BEGIN
THEN x := v END
A.set(v)
END
END
Mthode
: Preuves
Mthode
: Preuves
Mthode
: Preuves
!
Mthode
: o lamliorer ?
Mthode
: o lamliorer ?
Plan de la prsentation
Pourquoi les utiliser ?
Panorama (succint)
La mthode
Mthode
: gnration de code
Conclusions et perspectives
Mthode
: gnration de code
Titre de la thse :
tude de la gnration automatique de code sr
partir de spcifications
Mthode
: gnration de code
Titre de la thse :
tude de la gnration automatique de code sr
partir de spcifications
Objectifs :
Formaliser ltape de gnration de code
tendre (de manire gnrique ?) les langages
cibles
Prendre en compte certains critres de tailles
des donnes, ...
Intgrer le tout dans une plateforme logicielle
libre et open source
Positionnement
Cahier
des charges
Spcifications
formelles
abstraites
Spcifications
formelles
concrtes
Code(s)
Positionnement
Cahier
des charges
Transformations
manuelles ou
(semi)automatiques
Spcifications
formelles
abstraites
Spcifications
formelles
concrtes
Code(s)
Positionnement
Cahier
des charges
Transformations
manuelles ou
(semi)automatiques
Spcifications
formelles
abstraites
Corpus formel
Spcifications
formelles
concrtes
Code(s)
Positionnement
Cahier
des charges
Transformations
manuelles ou
(semi)automatiques
Spcifications
formelles
abstraites
Corpus formel
Spcifications
formelles
concrtes
Mes travaux
Code(s)
"
HLL
B.TXT
UML/XML
Parseur
Parseur
TONY
XML
BLAST
CEDRIC
DTD
Convertisseur
Typeur
GOP
B.XML
DTD
XSLT
OP/XML
BHLL
Gnration
Code
DTD
MetaCode XML
B.TXT
B . H T ML
PO.TXT
Sminaire LAMIH-ROI p.31/44
dans
&
?)
%;(4
?*
&
4:
%;(4
&
4:
%;(4
=)
&
=*
%;(4
4:
4:
?*
7(4 +
?)
7(4 +
&
>)
&
%;(4
>*
%;(4
4:
=)
4:
=*
47( +8
47( +8
&
<)
%;(4
<*
&
4:
%;(4
4:
&
):
%;(4
*:
&
4:
%;(4
4:
7(4 +
>)
7(4 +
>*
<)
<*
7(4 +
8
):
7(4 +
7(4 +
8
*:
7(4 +
&
0)
%;(4
0*
&
4:
%;(4
4:
&
9)
%;(4
9*
&
4:
%;(4
0)
7(4 +
4:
0*
7(4 +
&
*1
4:
%;(4
&
)1
4:
%;(4
9)
9*
7(4 +
8
7(4 +
3- A
&
(@ 1
*
*1
7(4 +
' 5&
/6 5
*
% 1&
34 .2
( .&
*
,'- +
/' .
-.
0*
3- A
&
(@ 1
)
)1
7(4 +
' 5&
/6 5
)
% 1&
34 .2
( .&
)
,'- +
/' .
-.
0)
%'( $&
*
%'( $&
)
Dpliage
Mcanisme de regroupement des textes formels
dition des liens en compilation classique
Abandonn car dveloppement trop complexe d aux
liens entre composants
dans un
autre systme
Utilisation de HLL
Grammaire abstraite
Typage
langage de base
langage de base
Mod_Syntax
Grammaire abstraite
avec modules
Env
AEnv
Mod_Typing
Verifieur
Sminaire LAMIH-ROI p.36/44
Caractristiques de HLL
Systme obtenu aprs instanciation :
modules composs de modules, types ou
valeurs
foncteur
possibilit de cacher les constituants dun
module
Contraintes sur le langage de base :
uniquement 2 catgories syntaxiques
(types et valeurs)
mme espace de nom pour les deux catgories
si dfinition de lune des catgories syntaxiques,
impossible de dfinir implicitement dans une
autre catgorie
Sminaire LAMIH-ROI p.37/44
Restrictions
langage de base considr : langage
(sans extension)
primitif
sans paramtre
Exemple derreurs
SETS
YY
INITIALISATION
INVARIANT
Nexemple
END
XX
CONCRETE_VARIABLES
END
MACHINE
Mimportee
YY
IMPLEMENTATION
Nimporte
INT
REFINES
Nexemple
YY := 10
IMPORTS
Mimportee
SETS
TT
CONCRETE_VARIABLES
VALUES
ZZ
TT = 1..YY
INITIALISATION
ZZ :=YY
INVARIANT
INT
ZZ
MACHINE
END
Sminaire LAMIH-ROI p.39/44
volution
Au dpart :
une implantation = un module (BHLL)
constitu de modules
dans chaque sous-modules restriction pour un
module vu ou import
une signature pour chaque restriction ncessaire
volution : prise en compte de sous-catgories
syntaxiques
une implantation = un module (BHLL)
simple
pour chaque module BHLL deux signatures (une
pour SEES et une pour IMPORTS)
Sminaire LAMIH-ROI p.40/44
volution
Avantage
simplifie lexpression de la modularit
dans HLL
Inconvnient
impose des restrictions
Instanciation
Plan de la prsentation
Pourquoi les utiliser ?
Panorama (succint)
La mthode
Mthode
: gnration de code
Conclusions et perspectives
Conclusions Perspectives
Conclusions
Mthode formelle : passage oblig
Clarification/simplification du systme de module
de
Outil de vrification de la smantique statique
Perspectives
finalisation des dveloppements et intgration
la plateforme
prendre en compte lintgralit du langage
tape suivante : gnration de code
choix faire pour les cibles
Sminaire LAMIH-ROI p.44/44
[Shankar et al.93]
[Rouzaud]
[Potet et al.98]
[Ofta97]
[Monin96]
[Leroy00]
[JB et al.94]
[Hinchey et al.95b]
[Hinchey et al.95a]
[Gordon et al.93]
[Fuchs et al.95]
[FD et al.]
[Facon et al.96]
[Coq01]
[Clavel et al.01]
[Burdy et al.]
[Bon00]
[Behnia00]
[Abrial96]
Shankar (N.), Owre (S.) et Rushby (J. M.). PVS Tutorial. Computer Science Laboratory,
SRI International, Menlo Park, CA, feb 1993.
OFTA (dit par). Application des techniques formelles au logiciel. Observatoire Franais des Techniques Avancees & Lavoisier TEC & DOC, 1997.
Leroy (Xavier). A modular module system. Journal of Functional Programming, vol. 10,
n3, 2000, pp. 269303.
Juan Bicarregui, John Fitzgerald (Peter Lindsay Richard Moore) et Ritchie (Brian). Proof
in VDM : A Practitioners Guide. Springer-Verlag, 1994, FACIT. ISBN 3-540-19813-X.
Hinchey (Michaek G.) et Bowen (Jonathan P.). Applications of Formal Methods, chap.
Applications of Formal Methods FAQ. Prentice Hall, 1995.
Hinchey (M. G.) et Bowen (J. P.) (dit par). Applications of Formal Methods. Prentice
Hall International, 1995, Series in Computer Science.
Gordon (M. J. C.) et Melham (Thomas F.). Introduction to HOL : A theorem proving
environment for higher order logic. Cambridge University Press, 1993.
Fuchs (N. E.) et Schwitter (R.). Specifying logic programs in controlled natural language.
Workshop on Computational Logic for Natural Language Processing. April 1995.
F. Durn, S. Eker (P. Lincoln) et Meseguer (J.). Principles of mobile maude. Submitted
for publication, 2000.
Facon (Philippe), Laleau (Rgine) et Nguyen (Hong Phuong). Mapping object diagrams
into b specifications. Method Integration Workshop. March 1996.
Coq (Coq Development Project). The Coq Proof Assistant Reference Manual, 2001. Version 7.0 1.
Clavel (Manuel), Durn (Francisco), Eker (Steven), Lincoln (Patrick), Mart-Oliet (Narciso),
Meseguer (Jos) et Quesada (Jos F.). Maude : Specification and programming in rewriting
logic. Theoretical Computer Science, 2001. To appear.
Bon (Philippe). Du cahier des charges aux spcifications formelles : une mthode base sur les rseaux de Petri de haut niveau. Thse de PhD, Universit des Sciences et
Techniques de Lille, 2000.
Behnia (Salimeh). Test de modles formels en B : cadre thorique et critres de couvertures. Thse de doctorat, Institut National Polytechnique de Toulouse, octobre 2000.
Rfrences
[Spivey98]
44-1