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

Slides:



Advertisements
Hasonló előadás
Deduktív adatbázisok.
Advertisements

GRIN: Gráf alapú RDF index
Adatbázisok SQL. TARTALOM Szijártó M.2 Témakörök  Az SQL tulajdonságai  A műveletek fajtái  Objektum-műveletek  Lekérdezések Tulajdonságok és műveletek.
Matematikai logika.
Algoritmus és programozás
Determinisztikus programok. Szintaxis: X : Pvalt program változók E : Kifkifejezések B : Lkiflogikai kifejezések C : Utsutasítások.
Matematikai logika A diasorozat az Analízis 1. (Mozaik Kiadó 2005.) c. könyvhöz készült. Készítette: Dr. Ábrahám István.
Helyességbizonyító eszközök alkalmazása funkcionális programok esetén
1.) A programfejlesztés hagyományos életciklus modellje és adattípus.
4. VÉGES HALMAZOK 4.1 Alaptulajdonságok
Programozás II. 3. Gyakorlat C++ alapok.
Függvények, mutatók Csernoch Mária.
Halmazok, relációk, függvények
Az informatika logikai alapjai
Készítette: Pető László
Fordítóprogramok FORD01 Programozó matematikus III. évf. Miskolci Egyetem 1 Fordítóprogramok 1 Programozó matematikus szak 2003/2004-es tanév II. félév.
Logika 5. Logikai állítások Miskolci Egyetem Állam- és Jogtudományi Kar Jogelméleti és Jogszociológiai Tanszék március 10.
Bevezetés a matematikába I
Reprezentációs függvény. Adva egy adattípus absztrakt és konkrét specifikációja: d a = ( A, F, E a ); d c = ( C, G, E c ); A = {A 0,..., A n };C = {C 0,...,
1. előadás. 1.) Szoftverfejlesztés, mint mérnöki tevékenység. Számítási eszközfejlődés. Számítási eszközfejlődés: hazai viszonyok. Mérföldkő: Simula 67.Klasszikus.
6. előadás Hatókör, láthatóság, élettartam. Változók leképzése a memóriára. Blokkszerkezetes nyelvek. Kivételkezelés.
1. előadás. 1.) Szoftverfejlesztés, mint mérnöki tevékenység. Számítási eszközfejlődés. Számítási eszközfejlődés: hazai viszonyok. Mérföldkő: Simula 67.Klasszikus.
Alphabet is a type specification = sorts: alphabet oprs: a:  alphabet,...,z:  alphabet end alphabet; nat is a type specification = sorts:nat oprs:zerus:
Halmazelmélet és matematikai logika
Az UML kiterjesztési lehetőségei
Halmazok Összefoglalás.
Bevezetés a C++ programozási nyelvbe
Tervminták megvalósítása B formális nyelven Papp Olga Vadász Péter Témavezető: Fóthi Ákos egyetemi tanár.
Tervminták megvalósítása B formális nyelven Papp Olga Vadász Péter.
Tervkészítés PDDL alapon Konzulens: Kovács Dániel László Intelligens rendszerek tanszék Budapest Műszaki és Gazdaságtudományi.
Számegyenesek, intervallumok
Természetes és formális nyelvek Jellemzők, szintaxis definiálása, Montague, extenzió - intenzió, kategóriákon alapuló gramatika, alkalmazások.
Boole-algebra (formális logika).
Szintaktikai, szemantikai szabályok
1.3. Pascal program felépítése Az els ő program. Program ; … Begin … End. Program fej Deklarációs rész Végrehajtó rész.
Készítette: Tóth Ervin
Weboldalak tervezése (X)HTML.
Logika 2. Klasszikus logika Miskolci Egyetem Állam- és Jogtudományi Kar Jogelméleti és Jogszociológiai Tanszék február 17.
1 Hernyák Zoltán Programozási Nyelvek II. Eszterházy Károly Főiskola Számítástudományi tsz.
1 Hernyák Zoltán Web: Magasszintű Programozási Nyelvek I. Eszterházy.
Javascript Microsoft által készített kiegészítése Statikus típusosság Nagy projektek Windows 8 fejlesztésénél WinRT egy részét ebben írták Nyílt forráskódú,
Ekvivalenciák nyitott mondatok között Két nyitott mondatot ekvivalensnek mondunk, hha tetszőleges világban ugyanazok az objektumok teszik őket igazzá.
Műszer vezérlő - kezelő program GPI-745A teszterhez.
Koncepció: Specifikáció: e par exp i = eb imp bod ib Specifikáció elemzése: tulajdonságok felírása a koncepció alapján + tulajdonságok bizonyítása.
– SQL 3: SELECT - 1. – Tarcsi Ádám, január 31. Adatbázis gyakorlat.
1. MATEMATIKA ELŐADÁS Halmazok, Függvények.
Turócziné Kiscsatári Nóra
Ekvivalenciák nyitott mondatok között Két nyitott mondatot ekvivalensnek mondunk, hha tetszőleges világban ugyanazok az objektumok teszik őket igazzá.
MI 2003/6 - 1 Elsőrendű predikátumkalkulus (elsőrendű logika) - alapvető különbség a kijelentéslogikához képest: alaphalmaz. Objektumok, relációk, tulajdonságok,
– SELECT - 1. – Tarcsi Ádám január Adatbázis gyakorlat.
előadások, konzultációk
Spanyolország gyöngyszeme: GRANADA Egy hobby portál kivitelezése.
C Programozási alapok.
Deduktiv adatbázisok. Normál adatbázisok: adat elemi adat SQL OLAP adatbázisok: adat statisztikai adat OLAP-SQL … GROUP BY CUBE(m1,m2,..)
Gyurkó György. Az OO programozás és tervezés története 1960-as évek: SIMULA (véletlen folyamatokat szimuláló programok írása) az OO nyelvek őse 1970-es.
Tervminták megvalósítása B formális nyelven Papp Olga Vadász Péter Témavezető: Fóthi Ákos.
Halmazok Érettségi követelmények:
Kiterjesztések szemantikája: Szemantikai tartomány : Adatoknak, vagy értékeknek egy nem üres halmazát szemantikai tartománynak nevezzük. Jelölése: D. Egy.
Félcsoport (semigroup) = ({s},{ *: s s  s [infix]}. semigroup is a type specification = sorts: s oprs: *: s s  s [infix] eqns: m 1, m 2, m 3  s (m 1.
Monadikus predikátumlogika, szillogisztika, Boole-algebra
Függvények, mutatók Csernoch Mária. Függvények függvény definíciója az értelmezési tartomány tetszőleges eleméhez hozzárendel egy értéket –függvény helyettesítési.
Programozási alapok.
Kifejezések C#-ban.
Programozási nyelvek típusossága.
Beépített függvények használata programozáskor
Programozás C# -ban Elágazások.
Típusok Halmaz (a világ objektumai közül néhány) Neve van
Nulladrendű formulák átalakításai
Bevezetés a matematikába I
Absztrakt problémák Q  I  S, az absztrakt probléma kétváltozós reláció az esetek (I) és a megoldások (S) halmazán Példa: legrövidebb út Eset: gráf és.
Előadás másolata:

Készítette: Vadász Péter 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 Helyességbizonyítás

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 (1985-1988) Oxfordi kutatások (1992) ipari felhasználás

Bevezetés (1994) B-t támogató programcsomag (B-Core: B-Toolkit, ClearSky: Atelier B) (1998 október) párizsi metró B konferenciák

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

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)

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)

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

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

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

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

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

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

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

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

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

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

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)

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

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

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.

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.

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.

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ó.

Helyességbizonyítás Elsősorban ez a célja Nagyon jó arány (akár 10000 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ó

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

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 http://quasar.inf.elte.hu/egyeb/temavezetes/balazs_zoltan Papp Olga, Vadász Péter Tervminták megvalósítása B formális nyelven TDK, 2005