Pobieranie prezentacji. Proszę czekać

Pobieranie prezentacji. Proszę czekać

Metody Analizy Programów Wykład 02 1 Grażyna Mirkowska PJWSTK 26 październik 2000.

Podobne prezentacje


Prezentacja na temat: "Metody Analizy Programów Wykład 02 1 Grażyna Mirkowska PJWSTK 26 październik 2000."— Zapis prezentacji:

1

2 Metody Analizy Programów Wykład 02 1 Grażyna Mirkowska PJWSTK 26 październik 2000

3 Metody Analizy Programów Wykład 02 2 Semantyka Programów Deterministycznych Z punktu widzenia maszyny realizującej program Z punktu widzenia użytkownika. W dowolnej strukturze danych M program wyznacza funkcję częściową : P M : W(M) W(M) gdzie W(M) jest zbiorem wszystkich wartościowań rozważanej struktury. P P Stan pamięci Dane Wyniki Ale... Program = Struktura Danych + Algorytm (N. Wirth)

4 Metody Analizy Programów Wykład 02 3 Instrukcja Przypisania Składnia x := t zmiennaterm(wyrażenie algebraiczne Np.: (x+y) - z f(x,y) x:= f((x+y)-z, y) Semantyka Niech M będzie strukturą danych a v ustalonym wartościowaniem, wtedy v : x y z x := tv : x y z at M (v) (x:=t) M (v) = v wttw v(x)= t M (v) v(z)=v(z) dla z x x:= t odwzoro wanie częścio we

5 Metody Analizy Programów Wykład 02 4 Przykłady v : x y z x := 7v : x y z a b c 7 b c v : x y z x := x+yv : x y z a b c a+b b c v : p q r p := (q and p) or not p v : p q r 1? Czy możnaby napisać, że po wyk. podstawienia x = (x+y ) ? (p q) p := (q and p) or not pp warunek początkowywarunek końcowy

6 Metody Analizy Programów Wykład 02 5 Twierdzenie: Dla dowolnego termu t i dowolnej formuły : (x := t) (x) ( x/ t) Zagadka (która z zależności jest prawdziwa?) (x)x := t ( x/t) warunek początkowywarunek końcowy ( x/t)x := t (x) Popatrzmy: Jeżeli na początku spełniony jest warunek y = x+3( to jest nasz warunek początkowy), to po wykonaniu instrukcji x := 5 zmenia się tylko wartość zmiennej x, natomiast nic nie wiem o zależności między x a y po wykonaniu tego przypisania!

7 Metody Analizy Programów Wykład 02 6 Inny przykład: warunek początkowy programwarunek końcowy x > 6x:= x+1x > 7 Rzeczywiście: skoro x>6, tzn. x+1>7, więc jeśli zastąpię term (x+1) przez x, otrzymam warunek x>7. x s >6, to po wykonaniu x n := x s +1 otrzymamy x n >7 (x) ( x:= x+1) (x/x-1) (x/x+1) (x:= x+1) (x)

8 Metody Analizy Programów Wykład 02 7 Złożenie programów Składnia Jeżeli P1 i P2 są programami, to P= begin P1; P2 end jest też programem. Schemat blokowy P1 Schemat blokowy P2 Semantyka ( przy ustalonej strukturze danych) x y z... P1; P2 x y z... a b c a2 b2 c2 wttw istnieją takie a1, b1, c1... takie, że x y z... P1 x y z... a b c a1 b1 c1 oraz x y z... P2 x y z... a1 b1 c1 a2 b2 c2 Schemat blokowy programu (P1; P2) P M (v) = P2 M (P1 M (v))

9 Metody Analizy Programów Wykład 02 8 Przykłady Niech P będzie programem, a M ustaloną strukturą danych. P: begin y := 2*x; x:= x* x; x := x+2y +7; y := x/y end Kolejne wartościowania, to v : x y x y x y x y a b a 2a a 2 2a a 2 +4a+7 2a v : x y a 2 +4a+7 (a 2 +4a+7)/2a P: begin aux := x; x := y; y := aux; end Własności kolejno uzyskiwanych stanów: x=a y=b x=b x=b y=b aux=a aux=a y=a

10 Metody Analizy Programów Wykład 02 9 Twierdzenie Dla dowolnej formuły, dla dowolnych programów P1, P2 i w dowolnej strukturze danych mamy (P1 ; P2) P1 ( P2 ) Wartość formuły po wykonaniu programu begin P1; P2 end jest taka sama jak wartość formuły (P2 ) po wykonaniu programu P1 w dowolnej strukturze danych i przy dowolnym wartościowaniu początkowym.

11 Metody Analizy Programów Wykład Instrukcje warunkowe Składnia: if then P1 else P2 fi Semantyka ( przy ustalonej strukturze M ): v : x y z if then P1 else P2 fi x y z a b c a3 b3 c3 wttw x y z P1 x y z o ile v |= a b c a3 b3 c3 albo x y z P2 x y z o ile v |= a b c a3 b3 c3 Schemat blokowy programu if then P1 else P2 fi. P1 P2 TAK NIE P1 M (v), gdy v|= P M (v) = P2 M (v), gdy v | =

12 Metody Analizy Programów Wykład Przykład P:begin if x>y then m := x else m := y fi; if m

13 Metody Analizy Programów Wykład Instrukcja pętli Składnia: while do P od, gdzie g jest warunkiem booleowskim, a P programem Semantyka : (rozważmy wartościowanie początkowe v w pewnej strukturze M) x y z... gdy v |= - a b c x y z... while do P od a b c Px y z... while g do P od a1 b1 c1 itd.... P g NIE TAK

14 Metody Analizy Programów Wykład Przykład Rozważmy poniższy program P w strukturze liczb naturalnych. P: begin t :=1; s := 0; i :=1; while i < n+1 do s := s + t; t := t + 2; i := i + 1 od; end Własności kolejno uzyskiwanych stanów w czasie wykonania programu P: i jest liczbą naturalną t jest liczbą nieparzystą s jest sumą kolejnych liczb nieparzystych Zauważmy, że na początku każdej iteracji mamy : t = 2i-1 s= (2i-3) = {(2j-1) : j=1,..., i-1} Co robi program P?

15 Metody Analizy Programów Wykład v, gdy v |= - while do P od M (v) = P i (v), gdzie i jest najmniejszą liczbą naturalną taką, że P i (v) jest określone i P i (v)|= - oraz P j (v) |= dla j=1, 2,..., (i-1). P: begin s:= 1; k := 1; while k < n do k := k+1; s := s * k od end Jaka jest najmniejsza liczba iteracji potrzebna aby warunek pętli nie był spełniony? Oczywiście potrzeba n-1 iteracji! Po n-1 iteracjach instrukcji (k:=k+1; s := s*k), k osiągnie wartość n a s wartość n! Zatem program P oblicza silnię liczby n dla n>1.

16 Metody Analizy Programów Wykład Twierdzenie Dla dowolnego programu P, dowolnych formuł i, następująca równoważność jest prawdziwa w każdej strukturze danych: while do P od = (- ( P( while do P od )) Wynika stąd natychmiast, że następująca implikacja jest prawdziwa: (P ) (P 2 (P 3... (P i (- while do P od Tzn. jeśli jest spełniona przez wartościowanie początkowe oraz po piewszej iteracji jest spełniona oraz po drugiej iteracji jest spełniona itd. aż do i-1-szej iteracji ale po i-tej iteracji nie jest spełniona i zachodzi własność wtedy własność jest prawdziwa po wykonaniu pętli.


Pobierz ppt "Metody Analizy Programów Wykład 02 1 Grażyna Mirkowska PJWSTK 26 październik 2000."

Podobne prezentacje


Reklamy Google