eGospodarka.pl
eGospodarka.pl poleca

eGospodarka.plGrupypl.comp.programmingDlaczego software to F35 jest pisany w C++ a nie w AdaRe: Dlaczego software to F35 jest pisany w C++ a nie w Ada
  • Path: news-archive.icm.edu.pl!agh.edu.pl!news.agh.edu.pl!newsfeed2.atman.pl!newsfeed.
    atman.pl!.POSTED!not-for-mail
    From: Sebastian Biały <h...@p...onet.pl>
    Newsgroups: pl.comp.programming
    Subject: Re: Dlaczego software to F35 jest pisany w C++ a nie w Ada
    Date: Mon, 01 Oct 2012 19:31:08 +0200
    Organization: ATMAN - ATM S.A.
    Lines: 89
    Message-ID: <k4ck0u$n3d$1@node1.news.atman.pl>
    References: <3...@g...com>
    <3...@g...com>
    <k3idkc$ne3$1@node2.news.atman.pl>
    <9...@g...com>
    <k3spfr$46s$1@node2.news.atman.pl>
    <8...@g...com>
    <k3vo9p$u74$1@node2.news.atman.pl>
    <f...@g...com>
    <k3vuc2$4cl$1@node2.news.atman.pl>
    <a...@g...com>
    <k420pf$sch$1@node2.news.atman.pl>
    <d...@g...com>
    <k44n4u$drv$1@node2.news.atman.pl>
    <8...@g...com>
    <k462an$knn$1@node2.news.atman.pl>
    <9...@g...com>
    NNTP-Posting-Host: 83.142.222.167
    Mime-Version: 1.0
    Content-Type: text/plain; charset=ISO-8859-2; format=flowed
    Content-Transfer-Encoding: 8bit
    X-Trace: node1.news.atman.pl 1349112670 23661 83.142.222.167 (1 Oct 2012 17:31:10
    GMT)
    X-Complaints-To: u...@a...pl
    NNTP-Posting-Date: Mon, 1 Oct 2012 17:31:10 +0000 (UTC)
    User-Agent: Mozilla/5.0 (Windows; U; Windows NT 6.0; en-US; rv:1.9.1.16)
    Gecko/20101125 Thunderbird/3.0.11
    In-Reply-To: <9...@g...com>
    Xref: news-archive.icm.edu.pl pl.comp.programming:199724
    [ ukryj nagłówki ]

    On 2012-09-30 23:52, Maciej Sobczak wrote:
    >> I musze przyznać, że gdyby software ariane był
    >> "wyżyłowany co do cykla" to programiści nie powinni się zajmowac więcej
    >> programowaniem.
    > Jakieś podstawy do tego swierdzenia?

    Doświadczenie. W systemie który "akurat" zmieścił się w 64kB ROM albo
    *akurat* zmieścił się w 100% czasu przerwania są jakieś kompromisy.
    Najczęściej dotyczące bezpieczeństwa własnie ("a, nie sprawdzaj tego
    indeksu, na pewno nie będzie > 10 a 7 cykli do przodu").

    > Bo ja wiem, że systemy latające bywają specyfikowane blisko kreski.

    Blisko kreski (a w zasadzie za) był np. Apollo z AGC. Tylko dzięki temu
    że ktoś znał na pamięc cały kod dali radę.

    > To jest kompromis pomiędzy tym, co ma być a tym, co jest dostępne

    To jest prawda w projektach budżetowych typu chiński sterownik do pieca.
    W projektach takich jak rocket-science nie ma racji bytu, zawsze możesz
    wziąść wiekszy, wziąść dwa itd. Nie ma większego? To masz zły hardware.

    > i w danych ograniczeniach możliwe do zrealizowania.
    > Analizę WCET robi się z jakiegoś konkretnego powodu a nie dla zabawy.

    "
    - Proszę pana, proszę pana, bo mi się tu napisało 17us kodu, to co robimy?
    - Rżniemy bezpieczeństwo, przecież analitycy wyliczyli że wejdzie do
    16us a hardware gotowy i nie można zmieniać!
    "

    >> Jeśli więc wymagana jest szybkośc to musisz pozegnać bezpieczeństwo.
    > Albo nie. Najgorzej, jeśli mamy złą specyfikację
    > - wtedy możemy napisać system, o którym "wiemy"
    >, że będzie działał dobrze i będzie też działał szybko
    >, ale przez jego użycie niezgodnie z założeniami wychodzi dupa.

    > Tak właśnie było z Ariane 5, bo użyto tam modułu z poprzedniego
    > modelu, gdzie był zarówno bezpieczny jak i szybki.
    > No, ale w nowym modelu był już tylko szybki.

    Nie zgadzam się. Ten kawalek kodu nie miał prawa wejść w jakikolwiek
    komputer sterujący rowerem bo jest niebezpieczny. Bajanie o tym że jakiś
    tam parametr jakimś cudem mieścił się zazwyczaj w granicy jest
    niebezpieczne i charakterystyczne dla "optymalizatorów w asm".

    >>> Drugorzędny? Duperelek? I w czym ten duperelek jest napisany, co?
    >> W czymś *prostym* co pozwoli na formalną weryfikacje.
    > Np. w Adzie? Ten język powstał z myślą o ułatwieniu formalnej weryfikacji
    >, chociażby przez minimalizację aliasingu, którego w C jest po sufit.

    I ta formalna weryfikacja i jej myśl zmaterializowała się?

    >>> Natomiast chamskie sztuczki w C++ *zawsze* są możliwe, bo do dyzpozycji
    >>> są wskaźniki i reinterpret_cast (oraz memcpy, itd.).
    >> Zupełnie jak w Adzie? Czekaj czekaj czy Ada jest nadzbiorem C++ w sensie
    >> niskopoziomowego gówna? OMG!
    > Nadzbiorem nie, bo się nie da.
    > memcpy na dowolnych argumentach to już jest nadzbiór
    >, bo każdy shit można tym zrealizować.
    > W Adzie też to jest dostępne, ale trudno to nazwać nadzbiorem.

    No patrz, Ada to taki jezyk z silnym typowaniem, super-wyjątkami,
    genialną składnią i kupką szitu pozwalającą legalnie wszystko wsadzić
    między bajki.

    > Lepszość Ady polega na tym, że o ten shit trzeba prosić
    >, natomiast w C trzeba prosić, żeby shitu nie było.

    I teraz - tadaaaam - zmierzamy w kierunku oczywistym: bezpieczeństwo
    kodu zależy nie od języka tylko od programisty. To zbiór czynników poza
    językiem decyduje w najwiekszym stopniu o jakości kodu. Takie duperele
    jak code review, formalna weryfikacja, analizy statyczne, dynamiczne,
    testowanie, ... Ada akuratnie niewiele pomaga, nie na tyle żeby to
    nazywać bezpiecznym kodem. Zapewne pierdyliard rzeczy poza Adą lepiej
    weryfikuje kod niż język.

    >>> W obu przypadkach ominięcie bezpiecznika można uznać za chamskie.
    >> I możliwe. Game over.
    > Ja też myślę, że powinniśmy zmierzać do końca tej dyskusji.

    Ale nie, przecież trolowanie i flame na tym polegają że nie. Nie nie nie.

    >> To oznacza że Ada pozwala na to samo co ASM.
    > Tak. Ten język powstał również po to, żeby dało się w nim pisać systemy operacyjne.

    A po co ? Nie można zrobić bezpiecznego języka do systemów nawigacji w
    ktorym 2+2 nie musisz implementować na bitach i recznym testowaniem
    overflow?

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: