Logika Hoare’a
| Ten artykuł od 2019-02 wymaga zweryfikowania podanych informacji. Należy podać wiarygodne źródła w formie przypisów bibliograficznych. Część lub nawet wszystkie informacje w artykule mogą być nieprawdziwe. Jako pozbawione źródeł mogą zostać zakwestionowane i usunięte. Sprawdź w źródłach: Encyklopedia PWN • Google Books • Google Scholar • Federacja Bibliotek Cyfrowych • BazHum • BazTech • RCIN • Internet Archive (texts / inlibrary) Dokładniejsze informacje o tym, co należy poprawić, być może znajdują się w dyskusji tego artykułu. Po wyeliminowaniu niedoskonałości należy usunąć szablon {{Dopracować}} z tego artykułu. |
Logika Hoare’a – formalizm matematyczny służący do opisu poprawności algorytmów. Wprowadzony został przez brytyjskiego naukowca Charlesa A.R. Hoare’a w roku 1969.
Napis oznacza, że fragment kodu o ile na wejściu będzie miał stan spełniający warunek oraz zakończy swoje działanie, to na wyjściu da stan spełniający warunek Formułę nazywamy warunkiem wstępnym, a formułę nazywamy warunkiem końcowym.
Przykład:
do instrukcji przypisania możemy dopisać następujące warunki wstępne i końcowe:
co oznacza, że przy dowolnym stanie przed wykonaniem instrukcji, po wykonaniu instrukcji będziemy mieli stan, w którym zmiennej jest przypisana wartość 5.
prawdą będzie również formuła
bo operacja przypisania na zmienną nie zmieni wartości zmiennej
też będzie prawdą, ponieważ operacja przypisania na zmienną wartości tej zmiennej zwiększonej o 1, przy założeniu, że przed wykonaniem tej instrukcji zmienna ma wartość 15 da nam wynik, w którym zmienna będzie miała wartość 16.
W przypadku logiki Hoare’a dozwolone jest m.in. następujące rozumowanie:
- jeśli oraz to
Pozwala nam to rozbijać złożone fragmenty kodu na instrukcje elementarne, dla których weryfikacja poprawności zapisu jest łatwa.