SW wykład 12 - Slajd13: Różnice pomiędzy wersjami

Z Studia Informatyczne
Przejdź do nawigacjiPrzejdź do wyszukiwania
Mengel (dyskusja | edycje)
Nie podano opisu zmian
 
Tarlecki (dyskusja | edycje)
Nie podano opisu zmian
 
Linia 2: Linia 2:


[[Grafika:sw1212.png|frame|center|]]
[[Grafika:sw1212.png|frame|center|]]
Dowodzenie własności stopu dla instrukcji pętli w sposób określony
regułą dla instrukcji pętli często okazuje się jednak
niewygodne. Wymaganie dokładnego określenia liczby wykonań ciała pętli
niezbędnych do zakończenia jej wykonania może okazać się zbyt mocne i
nierealistyczne w praktyce. Pierwsza, oczywista modyfikacja, to
dopuszczenie możliwości dowolnego zmniejszania wartości "licznika"
pętli przy każdym wykonaniu jej ciała o być może więcej niż jeden.
Często wygodne okazuje się też dalsze uogólnienie, gdzie wartości
"licznika" przebiegają pewien zbiór (niekoniecznie liczby naturalne) z
dodatkowo określoną dobrze ufundowaną relacją. Relacja jest dobrze
ufundowana, gdy nie istnieje nieskończony ciąg wartości takich, że
każda z nich jest w tej relacji z wartością następną w tym ciągu.
Na slajdzie podajemy kilka typowych przykładów zbiorów z relacją
dobrze ufundowaną.
Aby pokazać, że obliczenia pętli się kończą, wymagamy, by wartość
"licznika" w stanie (spełniającym niezmiennik pętli) przed wykonaniem
ciała pętli była w relacji z wartością "licznika" w stanie po
wykonaniu ciała pętli. Łatwo teraz widać, że jeśli ta własność jest
spełniona, to obliczenia instrukcji pętli nie mogą nieskończenie wiele
razy wykonywać ciała pętli.

Aktualna wersja na dzień 22:09, 16 paź 2006

<<powrót do strony wykładu

Zadanie programistyczne Przykład Problemy z logiką Hoare'a Poprawność całkowita Poprawność całkowita, c.d. Poprawność całkowita, c.d. Reguła dla pętli Poprawność systemu dowodzenia dla Tiny Pełność systemu dowodzenia dla Tiny Przykład Uogólnienie Poprawność i pełność Relacje dobrze ufundowane Dowodzenie poprawności całkowitej Przykład Przykład Kolejny problem Binarne warunki końcowe Warunki poprawności Reguły dowodzenia Reguły dowodzenia, c.d. Przykład Logika algorytmiczna System dowodzenia

Dowodzenie własności stopu dla instrukcji pętli w sposób określony regułą dla instrukcji pętli często okazuje się jednak niewygodne. Wymaganie dokładnego określenia liczby wykonań ciała pętli niezbędnych do zakończenia jej wykonania może okazać się zbyt mocne i nierealistyczne w praktyce. Pierwsza, oczywista modyfikacja, to dopuszczenie możliwości dowolnego zmniejszania wartości "licznika" pętli przy każdym wykonaniu jej ciała o być może więcej niż jeden.

Często wygodne okazuje się też dalsze uogólnienie, gdzie wartości "licznika" przebiegają pewien zbiór (niekoniecznie liczby naturalne) z dodatkowo określoną dobrze ufundowaną relacją. Relacja jest dobrze ufundowana, gdy nie istnieje nieskończony ciąg wartości takich, że każda z nich jest w tej relacji z wartością następną w tym ciągu.

Na slajdzie podajemy kilka typowych przykładów zbiorów z relacją dobrze ufundowaną.

Aby pokazać, że obliczenia pętli się kończą, wymagamy, by wartość "licznika" w stanie (spełniającym niezmiennik pętli) przed wykonaniem ciała pętli była w relacji z wartością "licznika" w stanie po wykonaniu ciała pętli. Łatwo teraz widać, że jeśli ta własność jest spełniona, to obliczenia instrukcji pętli nie mogą nieskończenie wiele razy wykonywać ciała pętli.