-
Data: 2019-09-08 22:17:19
Temat: Re: Jak to robią w NASA
Od: Maciej Sobczak <s...@g...com> szukaj wiadomości tego autora
[ pokaż wszystkie nagłówki ]> No to spróbujmy pierwszy przykład:
>
> /*@ ensures \result >= x && \result >= y;
> ensures \result == x || \result == y;
> */
> int max (int x, int y) { return (x > y) ? x : y; }
>
> int max (int x, int y) {
> int result = (x > y) ? x : y;
> assert(result >= x && result >= y);
> assert(result == x || result == y);
> return result;
> }
>
> Udało się.
Nie udało się, z czterech powodów.
Po pierwsze, asercje (nazwijmy je raczej warunkami weryfikacji) w tych przykładach są
właściwością deklaracji funkcji a nie jej ciała. Oznacza to, że są użyteczne zarówno
przy weryfikacji ciała funkcji jak i przy weryfikacji kodu wołającego. Twoje asserty
w ciele pełnią tylko tą pierwszą rolę, co je bardzo ogranicza.
Po drugie, warunki w komentarzach, gdzie są analizowane przez zewnętrzne narzędzie,
nie podlegają ograniczeniom języka C i mogą korzystać nie tylko z szerszej składni,
ale w ogóle z innego paradygmatu.
Po trzecie, na tym *pierwszym* przykładzie kończą się Twoje możliwości w tym
zakresie. Niezbyt imponująco. Dalsze przykłady są ciekawsze (co nawiązuje do
poprzedniego punktu).
Po czwarte wreszcie, Twoja wersja ma dead code. Mam nadzieję, że to nie wymaga
ponownego wyjaśnienia.
--
Maciej Sobczak * http://www.inspirel.com
Następne wpisy z tego wątku
- 09.09.19 17:56 AK
- 11.09.19 07:30 M.M.
- 11.09.19 09:21 Maciej Sobczak
- 11.09.19 20:09 AK
- 11.09.19 20:32 M.M.
- 12.09.19 09:21 Maciej Sobczak
- 12.09.19 12:05 M.M.
- 13.09.19 08:14 Maciej Sobczak
Najnowsze wątki z tej grupy
- Nowa ustawa o ochronie praw autorskich - opis problemu i szkic ustawy
- Alg. kompresji LZW
- Popr. 14. Nauka i Praca Programisty C++ w III Rzeczy (pospolitej)
- Arch. Prog. Nieuprzywilejowanych w pełnej wer. na nowej s. WWW energokod.pl
- 7. Raport Totaliztyczny: Sprawa Qt Group wer. 424
- TCL - problem z escape ostatniego \ w nawiasach {}
- Nauka i Praca Programisty C++ w III Rzeczy (pospolitej)
- testy-wyd-sort - Podsumowanie
- Tworzenie Programów Nieuprzywilejowanych Opartych Na Wtyczkach
- Do czego nadaje się QDockWidget z bibl. Qt?
- Bibl. Qt jest sztucznie ograniczona - jest nieprzydatna do celów komercyjnych
- Co sciaga kretynow
- AEiC 2024 - Ada-Europe conference - Deadlines Approaching
- Jakie są dobre zasady programowania programów opartych na wtyczkach?
- sprawdzanie słów kluczowych dot. zła
Najnowsze wątki
- 2025-03-20 Grubość socketa AM4+procesor
- 2025-03-20 Środa Wielkopolska => Konsultant wewnętrzny SAP FI/CO <=
- 2025-03-20 Warszawa => Senior Programmer C <=
- 2025-03-20 Re: Dlaczego tak odstają od Tesli?
- 2025-03-20 Greenpeace została zobowiązana do zapłaty niemal 667 mln dolarów [USA,wyrok sądu]
- 2025-03-20 Re: Dlaczego tak odstają od Tesli?
- 2025-03-19 Brak ograniczeń dla chińskiego kapitału - wam nie do rządu, tylko na zmywak do chińskiej knajpy!!!
- 2025-03-19 Wietnam wykłada 500M$ i chce zbudować fabrykę za 50G$
- 2025-03-19 szal-Unia == federacja policyjna
- 2025-03-19 Polsza == państwo policyjne
- 2025-03-19 Grzegorz Płaczek o programie szczepień dzieci. ,,Stworzono eldorado dla firm farmaceutycznych"
- 2025-03-19 Wietnam wykłada 500M$ i chce zbudować fabrykę za 50G$
- 2025-03-19 Gemini
- 2025-03-19 Mokry sen Zenka :)
- 2025-03-19 Re: Dlaczego tak odstają od Tesli?