-
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
Następne wpisy z tego wątku
- 21.11.18 11:12 Queequeg
- 21.11.18 11:36 fir
- 21.11.18 15:54 AK
- 21.11.18 16:07 AK
- 21.11.18 20:32 g...@g...com
- 21.11.18 20:35 g...@g...com
- 21.11.18 22:10 Queequeg
- 21.11.18 22:28 Maciej Sobczak
- 21.11.18 22:48 Maciej Sobczak
- 21.11.18 23:04 g...@g...com
- 22.11.18 11:31 Maciej Sobczak
- 22.11.18 15:22 fir
- 22.11.18 16:08 AK
- 22.11.18 18:50 Sebastian Biały
- 22.11.18 18:53 Sebastian Biały
Najnowsze wątki z tej grupy
- 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
- Re: W czym sie teraz pisze programy??
- Re: (PDF) Surgical Pathology of Non-neoplastic Gastrointestinal Diseases by Lizhi Zhang
- CfC 28th Ada-Europe Int. Conf. Reliable Software Technologies
- Młodzi programiści i tajna policja
- Ada 2022 Language Reference Manual to be Published by Springer
- Press Release - AEiC 2023, Ada-Europe Reliable Softw. Technol.
- Ada-Europe - AEiC 2023 early registration deadline approaching
- Ada-Europe Int.Conf. Reliable Software Technologies, AEiC 2023
- Ile cykli zajmuje mnożenie liczb 64-bitowych?
Najnowsze wątki
- 2024-05-26 O co chodzi?
- 2024-05-26 PJ autobus-tramwaj
- 2024-05-26 Renault Trafic i lampka z czerwonym STOP
- 2024-05-26 cena pięciocyfrowa
- 2024-05-26 Re: Jak dobra KE "okrada" złą Rosję "dla Ukrainy"
- 2024-05-25 supercap
- 2024-05-25 Sulzbach => Technischer Rollouter (d/m/w) <=
- 2024-05-25 Warszawa => Senior Account Manager <=
- 2024-05-25 Warszawa => Mid PHP Developer (Laravel) <=
- 2024-05-25 Warszawa => Mid PHP Developer (Laravel) <=
- 2024-05-25 Warszawa => Interactive/Experience Designer <=
- 2024-05-25 Warszawa => Key Account Manager <=
- 2024-05-25 Warszawa => SAP WM Consultant / Execution <=
- 2024-05-25 Warszawa => Key Account Manager <=
- 2024-05-25 Re: znów ten wrocław