SW wykład 13 - Slajd14: 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
 
(Nie pokazano 2 pośrednich wersji utworzonych przez tego samego użytkownika)
Linia 1: Linia 1:
[{{Semantyka i weryfikacja programów/Wykład 13}}
{{Semantyka i weryfikacja programów/Wykład 13}}


[[Grafika:sw1313.png|frame|center|]]
[[Grafika:sw1313.png|frame|center|]]
]
 
Jak zwykle, kluczowy jest tu niezmiennik pętli: przedstawienie
właściwego niezmiennika, który umożliwi potem konstrukcję pozostałych
składowych instrukcji i dowodu jej wymaga poprawności, wymaga inwencji
programisty.
 
W tym przypadku, proponujemy niezmiennik jak w ramce na górze slajdu.
 
Natychmiast zapewnia nam to spełnienie pierwszego z wymagań
dotyczących konstrukcji pętli: niezmiennik ten jest konsekwencją
warunku wstępnego.
 
Wybieramy też warunek wejścia do ciała pętli, jak w drugiej ramce na
slajdzie. Wówczas też łatwo pokazać, że zachodzi drugie z wymagań
dotyczących instrukcji pętli: niezmiennik wzmocniony o negację warunku
wejścia do ciała pętli implikuje warunek końcowy.
 
Dalej, określamy zbiór z relacją dobrze ufundowaną (zbiór liczb
naturalnych ze zwykłą "ostrą" nierównością). Zauważmy, że dla stanów
spełniających niezmiennik pętli, wartość wybranego tu wyrażenia
<math>n-rt</math> rzeczywiście jest liczbą naturalną.
 
W końcu, dwa ostatnie wymagania z poprzedniego slajdu tworzą
specyfikację dla instrukcji ciała pętli, którą mamy jeszcze zbudować.

Aktualna wersja na dzień 19:17, 17 paź 2006

<<powrót do strony wykładu

Zadanie programistyczne Pierwsze podejście Przykład Weryfikacja Przykład Możliwe przyczyny porażki Poprawiony program Przykład dowodu Drugie podejście Wyprowadzanie programu Wyprowadzanie programu, c.d. Wyprowadzanie programu, c.d. Wyprowadzanie programu, c.d. Wyprowadzanie programu, c.d. Wyprowadzanie programu, c.d. Własność stopu Własność stopu, c.d. Poprawność przez konstrukcję

Jak zwykle, kluczowy jest tu niezmiennik pętli: przedstawienie właściwego niezmiennika, który umożliwi potem konstrukcję pozostałych składowych instrukcji i dowodu jej wymaga poprawności, wymaga inwencji programisty.

W tym przypadku, proponujemy niezmiennik jak w ramce na górze slajdu.

Natychmiast zapewnia nam to spełnienie pierwszego z wymagań dotyczących konstrukcji pętli: niezmiennik ten jest konsekwencją warunku wstępnego.

Wybieramy też warunek wejścia do ciała pętli, jak w drugiej ramce na slajdzie. Wówczas też łatwo pokazać, że zachodzi drugie z wymagań dotyczących instrukcji pętli: niezmiennik wzmocniony o negację warunku wejścia do ciała pętli implikuje warunek końcowy.

Dalej, określamy zbiór z relacją dobrze ufundowaną (zbiór liczb naturalnych ze zwykłą "ostrą" nierównością). Zauważmy, że dla stanów spełniających niezmiennik pętli, wartość wybranego tu wyrażenia nrt rzeczywiście jest liczbą naturalną.

W końcu, dwa ostatnie wymagania z poprzedniego slajdu tworzą specyfikację dla instrukcji ciała pętli, którą mamy jeszcze zbudować.