Előadást letölteni
Az előadás letöltése folymat van. Kérjük, várjon
1
Készítette: Vadász Péter
B Formal Method Készítette: Vadász Péter
2
Tartalom Bevezetés Absztrakt gépek
Specifikáció/finomító/implementáció gép Jelölések Műveletek Vezérlési szerkezetek Helyességbizonyítás
3
Bevezetés (1985) Jean-Raymond Abrial
Edgar Dijkstra, Tony Hoare: leggyengébb előfeltétel Ralf Back, Carroll Morgan: finomítási módszerek J-R. Abrial: Z módszer ( ) Oxfordi kutatások (1992) ipari felhasználás
4
Bevezetés (1994) B-t támogató programcsomag (B-Core: B-Toolkit, ClearSky: Atelier B) (1998 október) párizsi metró B konferenciák
5
B módszer lépései Specifikáció Finomítás Implementáció Programkód
levezetés Finomítás levezetés Implementáció automatikus kódgenerálás Programkód
6
Absztrakt gépek Objektumalapú, de nem objektumelvű nyelv
Absztrakt gépek – nem osztályok, objektumok, de képesek azok szimulálására Absztrakt gépek fajtái: specifikáció gépek (kötelezően 1 db) finomító gépek (bármennyi, akár 0) Implementáció gépek (maximum 1 db)
7
Absztrakt gépek leírása (Abstract machine notation - AMN)
Deklarációs rész állapotleírás változók, konstansok, halmazok invariánsok, tulajdonságok Kompozíciós rész gépek közti kapcsolat változók és műveletek láthatósága Műveleti rész inicializáció műveletek (elő- utófeltételes forma)
8
Lexikális egységek Általános leírónyelv a programozónak, de könnyen átfordítható GSL-re (Generalized Substitution Language) Kis és nagybetű különböző Egybetűs azonosítók nem támogatottak Nem kötelező nyelvi elemek sorrendje tetszőleges (fejléc + adatok) 3 gépfajtára különböző használható elemek
9
Specifikáció gép (paraméterek)
MACHINE a gép neve paraméterek zárójelben utána MACHINE halmaz(maxelem) CONSTRAINTS paraméterekre megszorítások CONSTRAINTS maxelem: NAT & maxelem > 0
10
Specifikáció gép 2 (láthatási jogok, hozzáférés gépekhez)
INCLUDES ([név.]gépnév) halmazok, konstansok, gép aktuális paraméterei ismertek változók is de csak műveleteken keresztül érhetőek el átnevezéssel többszöri felhasználás USES([név.]gépnév) máshol INCLUDES-al hívott gépre hozzáférés mint fent, de nem módosíthatóak, és nem érhetőek el a paraméterek SEES([név.]gépnév) mint USES, de nem használható változó, konstans, halmaz az invariánsban
11
Specifikáció gép 3 (műveletek átvétele)
PROMOTES paraméterben egy lista, az átvett műveleteket tartalmazza EXTENDS paramétere azon gépek listája, ami minden műveletét átvesszük PROMOTES-al, és INCLUDES szabályai szerint használunk
12
Specifikáció gép 4 (adatok)
SETS CONSTANTS ABSTRACT_CONSTANTS (absztrakt), CONCRETE_CONSTANTS (végleges) is lehet PROPERTIES halmazokra és konstansokra megszorítások (paraméter használható) VARIABLES (ABSTRACT_, CONCRETE_) INVARIANT változókra megszorítások (PROPERTIES használható), minden váltózóra kötelező megszorítást tenni
13
Specifikáció gép 5 ASSERTIONS DEFINITIONS INITIALIZATION OPERATIONS
tulajdonságok (invariáns, környezeti információ) DEFINITIONS bal_oldal=jobb_oldal minkettő B formula INITIALIZATION minden változóra kötelező, rekurzív OPERATIONS műveletek leírása END kötelező zárás
14
Finomító gép REFINEMENT REFINES
a gép neve REFINES mely gépet finomítja SEES, SETS, CONSTANTS, PROPERTIES, VARIABLES, INVARIANT, ASSERTIONS, DEFINITIONS, INITIALIZATION, OPERATIONS, END a specifikació géphez hasonlóan
15
Implementáció gép IMPLEMENTATION REFINES
a gép neve REFINES melyik gépet finomítja SETS, CONCRETE_CONSTANTS, CONCRETE_VARIABLES, PROPERTIES, INVARIANT, ASSERTIONS, DEFINITIONS, INITIALIZATION, OPERATIONS, END mint a specifikáció gépnél VALUES konstans, halmaz értékek
16
Implementáció gép 2 (láthatóság, hozzáférés gépekhez)
SEES konstansok, halmazok, változók láthatóak, de nem módosíthatóak IMPORTS felhasznált gépek listája konstans, halmaz, változó részévé válik, de változó csak műveleten keresztül hivatkozható PROMOTES IMPORTS-al hivatkozott gép műveletei felsorolva, melyek ennek részeivé válnak
17
Jelölések Jelentés Matematikai jelölés B-s jelölésmód Konjunkció P Q
Diszjunkció P Q P or Q Implikáció P Q P => Q Ekvivalencia P Q P <=> Q Negáció P not P Univerzális kvantor z (P Q) !(z).(P => Q) Egzisztenciális kvantor z (P Q) #(z).(P & Q) Helyettesítés [G] P Egyenlőség E = F Nem egyenlő E F E /= F
18
Jelölések Jelentés Matematikai jelölés B-s jelölésmód Egyelemű halmaz
Halmaz felsorolása (többelemű) {E, F} Üres halmaz { } P tulajdonágú elemek halmaza { z | P } Unió S T S \/ T Metszet S T S /\ T Különbség S – T Rendezett pár (E, F) E |-> F Direktszorzat S T S * T Hatványhalmaz P(S) POW (S)
19
Műveletek OPERATIONS név = BEGIN Helyettesítések felsorolása END
név (paraméterek) = PRE Előfeltétel BEGIN Helyettesítések felsorolása END
20
Műveletek OPERATIONS visszatérésiérték <-- függvénynév (paraméterek) = PRE Előfeltétel THEN Helyettesítések felsorolása az utolsó kötelezően: visszatérésiérték := … alakú END
21
Helyettesítési műveletek
skip Hatás nélküli művelet. BEGIN S END Programblokk definiálása. Ekvivalens S-el. x := E Egyszerű értékadás. Az x változó az E kifejezés értékét kapja. x, y := E, F Szimultán értékadás. Az implementálás során egyszerű értékadásokkal kell helyettesíteni. r(x) := E Reláció értékadó művelet. Az r reláció x argumentumhoz tartozó értéke az E kifejezés.
22
Vezérlési szerkezetek
IF felt THEN S1 ELSE S2 END Elágazás. Ha a feltétel igaz S1, különben S2 végrehajtása. x := bool (P) Ekvivalens IF P THEN x := true ELSE x := false END programmal (x BOOL típusú, ahol BOOL={igaz, hamis}). CHOICE S OR T OR …. OR U END Az alapgépben (és a finomító gépekben) használatos korlátozott választás (S vagy T vagy … vagy U teljesül). Az implementáció során nem lehet nemdeterminisztikus. SELECT P THEN S … WHEN Q THEN T ELSE U END A korlátozott választás másik szintaktikai alakja feltételekkel bővítve. Az ELSE ág akkor hajtódik végre, ha egyik feltétel sem teljesül.
23
Vezérlési szerkezetek 2
CASE E OF EITHER l THEN S … OR p THEN T ELSE U END Speciális SELECT. Egy kifejezést értékel ki és ennek eredménye (1, .., p) alapján hajtja végre a megfelelő helyettesítést(S, …, T,U) ANY z WHERE P THEN S END Alapgépeknél (és finomításoknál) ezzel lehet korlátlan választási lehetőséget leírni. A P tulajdonságú tetszőleges z változóra végrehajtjuk az S programot. x : E Értékkiválasztás. Az x az E egy tetszőleges eleme lesz.
24
Vezérlési szerkezetek 3
VAR x IN S END Változó (x) deklarálása helyettesítésbe (S). LET x, …, y BE x = E … y = F IN S END S helyettesítés x, …, y változóval (amelyek függetlenek egymástól és a kifejezésekben található változóktól), és őrfeltételekkel (x=E, …, y=F) WHILE P DO G VARIANT E INVARIANT Q Ciklus leírása. P a feltétel, G a ciklusmag, E a termináló függvény, Q az invariáns tulajdonság. Csak implemetáció gépben használható.
25
Helyességbizonyítás Elsősorban ez a célja
Nagyon jó arány (akár bizonyítás 4-5 emberi a többi automatikus) Specifikációtól implementációig, finomítási lépésenként képes bizonyítani Párizsi metró
26
Egyéb tulajdonságok Nincs kivételkezelés
Párhuzamosság, I/O műveletek előre definiált gépekkel (BT_IO) érhetőek el, körülbelül megfelel a könyvtári egységeknek. Több lépéses fordítás (GSL, Java/C/stb.) Beépített típusok vannak, pl. NAT, BOOL
27
Felhasznált irodalom J-R. Abrial The B-Book Cambridge University Press, 1996 Balázs Zoltán B formális módszer a gyakorlatban diplomamunka, Papp Olga, Vadász Péter Tervminták megvalósítása B formális nyelven TDK, 2005
Hasonló előadás
© 2024 SlidePlayer.hu Inc.
All rights reserved.