Az előadás letöltése folymat van. Kérjük, várjon

Az előadás letöltése folymat van. Kérjük, várjon

B Formal Method Készítette: Vadász Péter. Tartalom Bevezetés Absztrakt gépek Specifikáció/finomító/implementáció gép Jelölések Műveletek Vezérlési szerkezetek.

Hasonló előadás


Az előadások a következő témára: "B Formal Method Készítette: Vadász Péter. Tartalom Bevezetés Absztrakt gépek Specifikáció/finomító/implementáció gép Jelölések Műveletek Vezérlési szerkezetek."— Előadás másolata:

1 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 automatikus kódgenerálás

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 –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 –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 –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ésMatematikai jelölésB-s jelölésmód Konjunkció P  Q P & Q Diszjunkció P  Q P or Q Implikáció P  Q P => Q Ekvivalencia P  Q P Q Negáció P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égE = F Nem egyenlő E  F E /= F

18 Jelölések JelentésMatematikai jelölésB-s jelölésmód Egyelemű halmaz{E} 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égS – T Rendezett pár(E, F)E |-> F Direktszorzat S  T S * T HatványhalmazP(S)POW (S)

19 Műveletek OPERATIONS név = BEGIN Helyettesítések felsorolása END OPERATIONS 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 END 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


Letölteni ppt "B Formal Method Készítette: Vadász Péter. Tartalom Bevezetés Absztrakt gépek Specifikáció/finomító/implementáció gép Jelölések Műveletek Vezérlési szerkezetek."

Hasonló előadás


Google Hirdetések