eGospodarka.pl
eGospodarka.pl poleca

eGospodarka.plGrupypl.comp.programmingJak to robią w NASA › Re: Jak to robią w NASA
  • X-Received: by 2002:ad4:4152:: with SMTP id z18mr6616688qvp.236.1567797917380; Fri,
    06 Sep 2019 12:25:17 -0700 (PDT)
    X-Received: by 2002:ad4:4152:: with SMTP id z18mr6616688qvp.236.1567797917380; Fri,
    06 Sep 2019 12:25:17 -0700 (PDT)
    Path: news-archive.icm.edu.pl!news.icm.edu.pl!newsfeed.pionier.net.pl!goblin1!goblin.
    stu.neva.ru!o24no6015081qtl.0!news-out.google.com!d29ni886qtg.1!nntp.google.com
    !o24no6015076qtl.0!postnews.google.com!glegroupsg2000goo.googlegroups.com!not-f
    or-mail
    Newsgroups: pl.comp.programming
    Date: Fri, 6 Sep 2019 12:25:17 -0700 (PDT)
    In-Reply-To: <4...@g...com>
    Complaints-To: g...@g...com
    Injection-Info: glegroupsg2000goo.googlegroups.com; posting-host=213.108.152.51;
    posting-account=bMuEOQoAAACUUr_ghL3RBIi5neBZ5w_S
    NNTP-Posting-Host: 213.108.152.51
    References: <1ua4wui506zbf$.dlg@tyczka.com> <qkecqc$c03$1@news.icm.edu.pl>
    <3...@g...com>
    <qkicu0$knb$1@gioia.aioe.org>
    <4...@g...com>
    <qkjqqi$1b59$1@gioia.aioe.org>
    <0...@g...com>
    <r...@t...com>
    <e...@g...com>
    <1...@g...com>
    <1...@g...com>
    <a...@g...com>
    <8...@g...com>
    <4...@g...com>
    User-Agent: G2/1.0
    MIME-Version: 1.0
    Message-ID: <e...@g...com>
    Subject: Re: Jak to robią w NASA
    From: Maciej Sobczak <s...@g...com>
    Injection-Date: Fri, 06 Sep 2019 19:25:17 +0000
    Content-Type: text/plain; charset="UTF-8"
    Content-Transfer-Encoding: quoted-printable
    Xref: news-archive.icm.edu.pl pl.comp.programming:213965
    [ ukryj nagłówki ]

    > > Kupa różnych narzędzi weryfikuje adnotacje zaszyte w komentarzach. Statycznie. I
    tak powinno być.
    >
    > Dlaczego? Bo właśnie do tego służą komentarze?

    Powinno być statycznie.
    Natomiast komentarze pozwalają "rozszerzyć" język bez ingerowania w kompilator.

    > Jeżeli tak jest, to to wynika co najwyżej z tego, że macierzysty język jest zbyt
    słaby, żeby wyrazić te rzeczy, które są istotne (i które weryfikują narzędzia, o
    których mówisz). I dlatego używa się komentarzy jako takiego "haka" na wyrażanie tych
    rzeczy.

    Tak. Tak właśnie jest.
    Język C jest słaby, więc używa się jego rozszerzeń w komentarzach, żeby wesprzeć jego
    weryfikację. Zaletą takiego działania jest transparentność względem kompilatora.

    > Słowo "asercja" można nawet znaleźć w Słowniku Języka Polskiego, jeśli komuś chce
    się szukać.

    Ale dryfujesz. Napisałem już kilka razy, dlaczego asercji się nie używa a Ty
    grzebiesz w SJP, żeby... no właśnie nie wiem po co.

    > możesz zdefiniować symbol NDEBUG przed załączeniem assert.h.

    I w czym mi to pomoże?
    Kod, który załaduję na produkcyjne urządzenie musi być *tym samym* kodem, który
    przetestowałem, co do bitu. Nie ma opcji, żebym zrobił inaczej. Więc ten NDEBUG
    musiałbym mieć zdefiniowany również w czasie testów.
    To na cholerę mi takie asercje?

    > Albo możesz np. zdefiniować
    >
    > #define certainly(x) do{}while(0)
    >
    > Wyjdzie w sumie na to samo.

    Mógłbym. Ale po co miałbym definiować makro, któro nic nie robi?

    > Asercje nie stanowią martwego kodu.

    One są martwe z założenia. Nigdy się nie wykonują, więc są martwe.

    > Standard C mówi wyłącznie, w jaki sposób jest zdefiniowane makro "assert".
    > Nie mówi nic o tym, co oznacza słowo "asercja".

    Dalej nie kumasz. Asercji nie używa się, bo stoją w konflikcie z innymi celami
    procesów krytycznych. Twoje własne asercje też takie będą, nawet jeśli je będziesz
    pisał na podstawie SJP.

    > Dajmy na to, że mam taki komentarz:
    >
    > /* wartośc poniższego enuma służą jako indeksy do tablicy TABLICA */
    >
    > po którym następuje enum.
    >
    > I teraz, czy narzędzie sprawdzi mi, czy wartości tego enuma służą jako indeksy do
    tablicy TABLICA?

    Jeśli masz takie narzędzie, to sprawdzi.
    Czego tu nie rozumiesz?

    Przewiń sobie tą stronę i popatrz na komentarze w przykładach:

    https://frama-c.com/acsl_tutorial_index.html

    > Nie wiem, jakie standardy czytałeś, ale jeżeli idzie o te, z którymi ja miałem
    styczność, to żadna nie rościła sobie pretensji do bycia normatywną w kwestii pojęcia
    asercji.

    Wniosek jest taki, że czytaliśmy różne standardy.

    --
    Maciej Sobczak * http://www.inspirel.com

Podziel się

Poleć ten post znajomemu poleć

Wydrukuj ten post drukuj


Następne wpisy z tego wątku

Najnowsze wątki z tej grupy


Najnowsze wątki

Szukaj w grupach

Eksperci egospodarka.pl

1 1 1

Wpisz nazwę miasta, dla którego chcesz znaleźć jednostkę ZUS.

Wzory dokumentów

Bezpłatne wzory dokumentów i formularzy.
Wyszukaj i pobierz za darmo: