eGospodarka.pl
eGospodarka.pl poleca

eGospodarka.plGrupypl.comp.programmingNiezmienniki pętli › Re: Niezmienniki pętli
  • Data: 2018-11-21 08:16:38
    Temat: Re: Niezmienniki pętli
    Od: Maciej Sobczak <s...@g...com> szukaj wiadomości tego autora
    [ pokaż wszystkie nagłówki ]

    > > Dlatego paradoksem naszej branży jest to, że najwięcej systemów
    > > krytycznych pisze się w... C.
    >
    > Tak. To jest paradoks.
    > Dodam tylko, że jeszcze wiekszym paradoksem jest to, iż nie wynika to
    > _w najmniejszym stopniu_ z jakosci jezyka C jako języka programowania.
    > Wprost przeciwnie.

    Tak.

    > Ten prymitywizm przeklada sie na bardzo duze ulatwienia w stworzeniu
    > kompilatora, ktory "pojdzie" bez problemu rowniez na prymitywnym
    > sprzecie (embedded itp).

    Nie.

    Tzn. łatwość w tworzeniu kompilatora była argumentem, który miał znaczenie dawno
    temu, jak nie było kompilatorów i trzeba było je tworzyć. Wtedy fakt, że napisanie
    kompilatora C było proste, ułatwił ekspansję C na każdą nową platformę.
    Teraz ten argument nie ma znaczenia, bo kompilatory już są i nie trzeba ich pisać.
    Nowe platformy sprzętowe nie powstają, wszystko się z grubsza zunifikowało a np. nowe
    mikrokontrolery powstają w ramach istniejących już rodzin. A nawet jak się jakiś
    producent wychyli z czymś istotnie nowym, to wystarczy dopisać backend do gcc, czyli
    skorzystać z istniejącego już front-endu. Dlatego walory języka C w tym zakresie
    przestały mieć znaczenie.

    Dodatkowo, nie jest istotne, żeby kompilator "poszedł" na prymitywnym sprzęcie, bo
    nikt poważny nie kompiluje na targecie. Kompiluje się na dowolnym biurkowym hoście a
    na target wrzuca gotowy obraz - to pozwala użyć dowolnie skomplikowanego toolsetu
    nawet w odniesieniu do mikrokontrolera z 512 bajtów RAMu. Właśnie dlatego typowe
    dzisiejsze środowisko do programowania takich mikrokontrolerów jest oparte na
    Eclipsie i zajmuje ileś GB na dysku i wymaga procesora i7, żeby się dało z niego
    korzystać.

    Prymitywizm języka C jest natomiast przydatny (również dzisiaj) do tego, że w takim
    języku związek między kodem źródłowym a obiektowym (tzn. tym skompilowanym) jest
    niemal 1:1 i każdy średnio rozgarnięty inżynier jest w stanie wskazać linię ciągłą, w
    obie strony, pomiędzy tym co napisał a tym co uruchomił. To jest absolutnie kluczowe
    w projektach krytycznych - tzn. jeśli tej jednoznaczności nie ma, to projekt nie ma
    szans na sukces, przynajmniej nie przy dzisiejszych standardach procesowych.
    Innym językiem, który pozwala na takie jednoznaczne przełożenie, jest Ada (tzn. jakiś
    rygorystycznie dobrany podzbiór). Z C++ też się da, przy starannie wybranym
    podzbiorze języka. Z tych trzech wygrywają... przyzwyczajenia.

    --
    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: