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
Linia 1: Linia 1:
[{{Semantyka i weryfikacja programów/Wykład 13}}
[{{Semantyka i weryfikacja programów/Wykład 14}}


[[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ć.

Wersja z 19:12, 17 paź 2006

[ <<powrót do strony wykładu

Systematyczne konstruowanie programów Inżynieria wymagań Walidacja specyfikacji Strukturalne języki specyfikowania Zadanie programisty Uszczegóławianie Uszczegóławianie, c.d. Dekompozycja Wyzwanie

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