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
  • Data: 2012-09-28 19:35:24
    Temat: Re: Dlaczego software to F35 jest pisany w C++ a nie w Ada
    Od: Sebastian Biały <h...@p...onet.pl> szukaj wiadomości tego autora
    [ pokaż wszystkie nagłówki ]

    On 2012-09-28 10:17, Maciej Sobczak wrote:
    > Zastanów się najpierw *po co* istnieją bezpieczne języki.

    Po to aby przeciwdziałać błedom programisty badź specyfikacji w jak
    nalepszym stopniu.

    Gdybysmy tworzyli oprogramowanie bez bledów takie języki nie mają racji
    bytu. W związku z tym podstawowa cechą bezpiecznego języka jest
    podwyższenie jakości poprzez eliminację błedów nawet kosztem wydajności
    bądź wyprucia żył programisty poprzez udziwniona składnię.

    > czyli do interakcji ze sterowanikami urządzeń albo wręcz do bezpośrednich odwołań
    do pamięci

    *G* prawda. Sterowanie rakietą poprzez algorytmy nawigacyjne *NIE*
    polega na dziobaniu po gołej pamięci bądź zapalaniu bitów na porcie IO
    uC albo sprawdzanie czy w milionie miejsc nastapil overflow. Sterowanie
    rakietą polega na realizacji (zapewne) statycznego pamieciowo zadania
    matematycznego. A jakiś drugorzędny duperelek zajmuje się częscią
    łaczącą wyniki z elektroniką. W załaczonym przykładzie sterowania
    rakietą nie ma śladu po *sterowaniu* w twoim sensie, jest natomiast ślad
    po *obliczaniu*. Programista zaliczył fail, tym bardziej komiczny że
    wypruto sobie żyły na użycie Ady która okazała się wydmuszką bo nic nie
    dała. Prawdopodobnie dałbym osobiście radę naklepać bezpieczną klasę do
    konwersji w C++ która dzięki prostym zabiegom *uniemożliwiła* by
    programiście jej nie-użycie bez chamskich sztuczek. Głupi C++ potrafił
    by lepiej zabezpieczyć przed radosną twórczością byłych programistów
    demek. Żałosne.

    >, bo właśnie tak wyglądają te interakcje na odpowiednio niskim poziomie.

    Tutaj *nie* było niskiego poziomu. Jesli zaś ktoś matematykę i overflow
    implementuje ręcznie na bitach jak w przytoczonym przykładzie to jest
    idiotą.

    > Otóż żeby dany język w ogóle się do tego nadawał
    >, to musi udostępnić wszystkie narzędzia z rodziny
    > memset, memcpy, reinterpret_cast oraz link z dowolnym symbolem.

    Żadna z tych funkcji nie jest wymagana w liczeniu kąta otwarcia
    przepustnicy lewej dyszy.

    > Ada to wszystko umożliwia, ale trzeba o te rzeczy poprosić bardziej, niż w C. I to
    "bardziej" jest właśnie miarą bezpieczeństwa, bo w C te rzeczy spadają programiście
    na głowę same.
    > Język, który tych narzędzi nie udostępnia *nie nadaje się do tworzenia bezpiecznych
    systemów*.

    Te narzędzia na szczęscie udostepnia asm. I nic dziwnego że ten kawałek
    algorytmu naklepano w stylu asm. Zapewne resztę też. I tyle było z tej Ady.

    > Proste?

    Jednak za bardzo to uprościłeś. Uprościłeś do systemów embedded
    zajmujących się *bezpośrednim* sterowaniem. To tylko pewien zbiór
    problemów. Niekompletny.

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: