m; cout > k; for (int i=m; i!=m+k; i++){ sum += 2*i+3;} cout << "A 2*x+3 fv. értékek összege " << m << "-tól " << k << " darab: " << sum; return 0;}"> m; cout > k; for (int i=m; i!=m+k; i++){ sum += 2*i+3;} cout << "A 2*x+3 fv. értékek összege " << m << "-tól " << k << " darab: " << sum; return 0;}">

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

ANY u WHERE u : seq(MININT..MAXINT) & size(u) = size(s) & #f.(f : 1..size(s) >->> 1..size(s) & !j.(j : 1..size(s) => s(f(j)) = u(j))) & !i.(i : 1..size(s)-1.

Hasonló előadás


Az előadások a következő témára: "ANY u WHERE u : seq(MININT..MAXINT) & size(u) = size(s) & #f.(f : 1..size(s) >->> 1..size(s) & !j.(j : 1..size(s) => s(f(j)) = u(j))) & !i.(i : 1..size(s)-1."— Előadás másolata:

1 ANY u WHERE u : seq(MININT..MAXINT) & size(u) = size(s) & #f.(f : 1..size(s) >->> 1..size(s) & !j.(j : 1..size(s) => s(f(j)) = u(j))) & !i.(i : 1..size(s)-1 => u(i) <= u(i + 1)) THEN t := u END x <-- findmax(s, n) = PRE n : 1..MAXINT-1 & s : seq(MININT..MAXINT) & size(s) >= n THEN ANY y WHERE y : 1..n & !z.(z : 1..n => s(y) >= s(z)) THEN x := y END #include using namespace std; int main() { int k, m ; cout << "A 2*x+3 fuggveny ertekeinek az osszege m-tol, k-darab\n" ; cout > m; cout > k; int sum = 0; for (int i=m; i<=m+k; i++){ sum += 2*i+3; } cout << "\nA 2*x+3 fuggveny ertekek osszege " << m << "-tol " << k << "-darab: " << sum << "\n"; return 0; } „…hogy ne robbanjon fel…” Neumann Nap 2005 ELTE-IK-PSZT Dr. Istenes Zoltán Neumann Nap 2005 ELTE-IK-PSZT Dr. Istenes Zoltán

2 #include using namespace std; int main() { int k, m, sum ; cout << "A 2*x+3 fv. értékeinek az összege m-tól, k-darab"; cout > m; cout > k; for (int i=m; i<=m+k; i++){ sum += 2*i+3;} cout << "A 2*x+3 fv. értékek összege " << m << "-tól " << m+k << "-ig: " << sum return 0;} Csak egy kis C++ program…(1) sum = 0; ; fordító jelzi, szintaktikai hiba első teszteléskor kiderül, „csak elfelejtettük”… szemantikai hiba, „mindenki tudja”…

3 Csak egy kis C++ program…(2) #include using namespace std; int main() { int k, m, sum=0 ; cout << "A 2*x+3 fv. értékeinek az összege m-tól, k-darab"; cout > m; cout > k; for (int i=m; i!=m+k; i++){ sum += 2*i+3;} cout << "A 2*x+3 fv. értékek összege " << m << "-tól " << k << " darab: " << sum; return 0;}

4 „Ha egy változó túlcsordul…” e) At 36.7 seconds after H0 (approx. 30 seconds after lift-off) the computer within the back-up inertial reference system, which was working on stand-by for guidance and attitude control, became inoperative. This was caused by an internal variable related to the horizontal velocity of the launcher exceeding a limit which existed in the software of this computer. ARIANE 5 - Flight 501 Failure - Report by the Inquiry Board for (int i=m; i!=m+k; i++){ sum += 2*i+3;}

5 B módszer (the B method) van formális szintaktikája és formális szemantikája komplett fejlesztőeszközök, B specifikációkat szerkeszteni, ellenőrizni, bizonyítandó tételeket készíteni és azokat bizonyítani lehet velük. formális kifejezhetőek a különféle tulajdonságok és feltételek, bemutathatóak azok bizonyítása illetve működése B-Toolkit / Atelier-B "A B egy módszer szoftverrendszerek tervezésére és megvalósítására" J.R. Abrial

6 Bizonyítások „láncolata”… Absztrakt gép specifikáció Absztrakt gép specifikáció Finomítás 1. Finomítás... Finomítás n. Megvalósítás C/Java forráskód Egy szinten belüli „koherencia” „megfelelés” az előző szintnek

7 specifikáció implementáció

8 „Halmaz, típus, helyettesítés” INVARIANT beir  TAN INITIALISATION beir:=  OPERATIONS kiirat(diak)= PRE diak  beir THEN beir:=beir-{diak} END; [beir:=  ]beir  TAN   TAN beir  TAN  diak  beir  [PRE diak  beir THEN beir:=beir-{diak} END]beir  TAN beir  TAN  diak  beir  diak  beir  [beir:=beir-{diak}]beir  TAN beir  TAN  diak  beir  [beir:=beir-{diak}]beir  TAN beir  TAN  diak  beir  beir-{diak}  TAN A művelet „formális” definiciója: [PRE P THEN G END] Q  P  [G] Q Az invariánst „megőrzi” az inicializálás… Az invariánst „megőrzi” a művelet…

9 B módszer alkalmazása Párizsi metro 14-es vonal program által irányított… 100.000 sor B specifikáció 87.000 sor ADA kód 28.000 bizonyított tétel félformális és formális módszerek félformális és formális módszerek rendszer modellezés UML tervminták „Formális módszerek a szoftvertechnológiában” „Formális módszerek a szoftvertechnológiában”

10 Összefoglalás igény a „nagy” és „biztonságos” informatikai rendszerek iránt formális eszközök/módszerek szükségesek a biztonságkritikus és a bizonyíthatóan helyes rendszerek tervezésekor formális eszközök/módszerek szükségesek a biztonságkritikus és a bizonyíthatóan helyes rendszerek tervezésekor B módszer formális módszerek alkalmazása Az előadás : http://quasar.inf.elte.hu/egyeb/rendezvenyek/neumann_nap_2005 A tárgy weboldala : http://quasar.inf.elte.hu/oktatas/formalis The B method : http://vl.fmnet.info/b/

11

12

13

14

15

16

17

18


Letölteni ppt "ANY u WHERE u : seq(MININT..MAXINT) & size(u) = size(s) & #f.(f : 1..size(s) >->> 1..size(s) & !j.(j : 1..size(s) => s(f(j)) = u(j))) & !i.(i : 1..size(s)-1."

Hasonló előadás


Google Hirdetések