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

Készítette: Vadász Péter

Hasonló előadás


Az előadások a következő témára: "Készítette: Vadász Péter"— Előadás másolata:

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, 2004 Papp Olga, Vadász Péter Tervminták megvalósítása B formális nyelven TDK, 2005


Letölteni ppt "Készítette: Vadász Péter"

Hasonló előadás


Google Hirdetések