- 
 81. Data: 2012-10-09 15:18:41
 Temat: Re: Dlaczego software to F35 jest pisany w C++ a nie w Ada
 Od: "M.M." <m...@g...com>
 W dniu wtorek, 9 października 2012 10:17:56 UTC+2 użytkownik Maciej Sobczak napisał: 
 > A może nie zapinajmy w samochodzie pasów bezpieczeństwa i w ogóle jeździjmy
 > nocą bez świateł - wtedy będziemy bardziej uważać a nie rozleniwiać się
 > złudzeniem uzyskanego tanio bezpieczeństwa. Tak?
 Nie mozna wszystkiego porowynywac do swiatel i pasow w smochodzie. Czesto w
 zyciu tak sie zdarza, ze lepsze narzedzia wlasnie rozleniwiaja. Pracuje nad
 aplikacja w ktorej dla wygody az sie roi od qvector, qhash itd. Pamiec sie
 defragmentuje i wersja 32bitowa nie chce dzialac. W wielu miejscach moglem
 uniknac uzywania tych dynamicznych struktur, ale wygoda wziela gore.
 Pozdrawiam
 
- 
 82. Data: 2012-10-09 17:11:47
 Temat: Re: Dlaczego software to F35 jest pisany w C++ a nie w Ada
 Od: Baranosiu <r...@w...pl>
 Dnia 09.10.2012 Maciej Sobczak <s...@g...com> napisał/a: 
 > A może nie zapinajmy w samochodzie pasów bezpieczeństwa i w ogóle jeździjmy nocą
 bez świateł - wtedy będziemy bardziej uważać a nie rozleniwiać się złudzeniem
 uzyskanego tanio bezpieczeństwa. Tak?
 
 Złudne bezpieczeństwo to byłoby gdybym tylko spojrzał na deskę
 rozdzielczą i pomyślał "ok, kontrolka przypominająca o pasach nie
 miga, kontrolka od świateł świeci na zielono, a więc mam zapięte pasy
 i światła świecą, przecież ufam wskazaniom przyżądów" :D
 
 Ok, skoro tak przy samochodzie się upierasz, to wyobraź sobie, że
 mechanik naprawiał Ci hamulce w samochodzie i włożył system ABS od
 innego modelu samochodu (tam przecież działał, to czemu nie w
 Twoim?). Oczywiście sterownik ABS mógłby wykryć, że jest w
 "niekompatybilnym" samochodzie, ale projektantom ABS-a nie przyszło do
 głowy takie jego użycie, więc zrezygnowali z mechanizmu
 weryfikacji. Mechanik myśli "gdyby coś było nie tak, to przecież ABS
 ma kontrolkę informującą o nieprawidłowej pracy". Ty wsiadasz do
 samochodu i myślisz "mechanik zna się na robocie, czerwona lampka ABS
 nie świeci, więc hamulce są ok", być może nawet przetestujesz hamulce
 na prędkości powiedzmy 30-40km/h i wszystko zadziała jak należy a
 potem się zdziwisz przy 90km/h :D
 
- 
 83. Data: 2012-10-09 23:09:51
 Temat: Re: Dlaczego software to F35 jest pisany w C++ a nie w Ada
 Od: Maciej Sobczak <s...@g...com>
 W dniu wtorek, 9 października 2012 17:11:52 UTC+2 użytkownik Baranosiu napisał: 
 
 > Ok, skoro tak przy samochodzie się upierasz, to wyobraź sobie, że
 > mechanik naprawiał Ci hamulce w samochodzie i włożył system ABS od
 > innego modelu samochodu (tam przecież działał, to czemu nie w
 > Twoim?). Oczywiście sterownik ABS mógłby wykryć, że jest w
 > "niekompatybilnym" samochodzie, ale projektantom ABS-a nie przyszło do
 > głowy takie jego użycie, więc zrezygnowali z mechanizmu
 > weryfikacji. Mechanik myśli "gdyby coś było nie tak, to przecież ABS
 > ma kontrolkę informującą o nieprawidłowej pracy". Ty wsiadasz do
 > samochodu i myślisz "mechanik zna się na robocie, czerwona lampka ABS
 > nie świeci, więc hamulce są ok", być może nawet przetestujesz hamulce
 > na prędkości powiedzmy 30-40km/h i wszystko zadziała jak należy a
 > potem się zdziwisz przy 90km/h :D
 
 Tak, to dobra analogia. Chyba dosyć blisko odzwierciedla problem z Ariane 5. Poza,
 być może, mechanizmem samozniszczenia, którego, mam nadzieję, w samochodzie nie mam.
 :-)
 
 --
 Maciej Sobczak * http://www.msobczak.com * http://www.inspirel.com
 
- 
 84. Data: 2012-10-24 00:32:03
 Temat: Re: Dlaczego software to F35 jest pisany w C++ a nie w Ada
 Od: Marcin Kowalczyk <q...@g...com>
 W dniu środa, 26 września 2012 01:04:42 UTC-7 użytkownik Maciej Sobczak napisał: 
 >
 > "Efficiency considerations had led to the disabling of the software handler (in Ada
 code) for this error trap [...]"
 >
 >
 >
 > Jeszcze raz: *disabling*.
 >
 >
 >
 > Jeszcze raz: *D*I*S*A*B*L*I*N*G*.
 >
 >
 >
 > Znaczy się: tak, można w Adzie *wyłączyć* bezpieczniki. To jest język do
 programowania "systemowego", więc wszystko musi być tam możliwe, również sytuacja, w
 której programista wyraźnie stwierdza, że nie chce pomocy ze strony języka, i że
 bierze za to odpowiedzialność. To, co odróżnia Adę od C to fakt, że te bezpieczniki
 tam w ogóle są (w C w ogóle nie ma) i że te bezpieczniki są domyślnie włączone. To
 właśnie sprawia, że ten język jest bezpieczniejszy.
 
 "Bezpiecznikiem" był if w kodzie, który sprawdzał, czy wartość mieści się w zakresie
 int16, i jeśli nie, to podstawiał skrajne wartości z zakresu. "Disabling" polegało na
 tym, że tego ifa w ogóle nie było, choć był w analogicznej sekcji kodu obok. Nie był
 więc wcale "domyślnie włączony", a w C można było napisać takiego ifa tak samo jak w
 Adzie.
 
- 
 85. Data: 2012-10-24 09:59:52
 Temat: Re: Dlaczego software to F35 jest pisany w C++ a nie w Ada
 Od: Maciej Sobczak <s...@g...com>
 W dniu środa, 24 października 2012 00:32:07 UTC+2 użytkownik Marcin Kowalczyk 
 napisał:
 
 > "Bezpiecznikiem" był if w kodzie, który sprawdzał, czy wartość mieści się w
 zakresie int16, i jeśli nie, to podstawiał skrajne wartości z zakresu.
 
 Oprócz tego jawnego ifa w kodzie Ada wstawia własne ify (albo realizuje to w
 jakikolwiek inny sposób) przy każdej konwersji między dwoma typami liczbowymi.
 
 To znaczy, że nawet bez tego jawnego ifa w kodzie Ada ma mechanizm sprawdzający,
 który powoduje reakcję na poziomie software'u (wyjatek Constraint_Error, który da się
 obsłużyć programowo).
 W razie potrzeby służę odpowiednim paragrafem.
 
 > "Disabling" polegało na tym, że tego ifa w ogóle nie było,
 
 "Disabling" musiało też polegać na wyłączeniu tego mechanizmu języka, którego nie
 widać, ale który normalnie jest włączony. Dlatego konwersja nie spowodowała rekacji
 na poziomie software'u, tylko na poziomie hardware'u, gdzie software nie miał już nic
 do powiedzenia.
 
 > Nie był więc wcale "domyślnie włączony",
 
 Był. To wynika z definicji języka.
 
 > a w C można było napisać takiego ifa tak samo jak w Adzie.
 
 Można go też było nie napisać tak jak w Adzie. Różnica polega na tym, że Ada ma
 jeszcze pod spodem mechanizm zdefiniowany na poziomie języka, którego C nie ma.
 Ten mechanizm jest normalnie włączony, ale można go wyłączyć.
 
 --
 Maciej Sobczak * http://www.msobczak.com * http://www.inspirel.com
 
- 
 86. Data: 2012-10-24 18:38:29
 Temat: Re: Dlaczego software to F35 jest pisany w C++ a nie w Ada
 Od: Baranosiu <r...@w...pl>
 Dnia 24.10.2012 Maciej Sobczak <s...@g...com> napisał/a: 
 >> a w C można było napisać takiego ifa tak samo jak w Adzie.
 >
 > Można go też było nie napisać tak jak w Adzie. Różnica polega na tym, że Ada ma
 jeszcze pod spodem mechanizm zdefiniowany na poziomie języka, którego C nie ma.
 > Ten mechanizm jest normalnie włączony, ale można go wyłączyć.
 >
 
 Nie jest wcale tak "zawsze i wszędzie", przykład (liczenie silni metodą
 rekurencyjną):
 
 with Ada.Text_Io; use Ada.Text_Io;
 with Ada.Integer_Text_Io; use Ada.Integer_Text_Io;
 procedure Tabelka_silnia is
 function Silnia (N:Integer) return Integer is
 begin
 if (N=0) then
 return 1;
 else
 return N*Silnia(N-1);
 end if;
 end Silnia;
 begin
 for I in 1..50 loop
 Put(I); Put(Silnia(I));
 New_Line;
 end loop;
 end Tabelka_silnia;
 
 I... dupa, typ wbudowany okazuje się "za mały" na pomieszczenie wyniku
 a kontroli zakresów (i generowania wyjątków) nie ma. To że na przykład
 GNAT ma opcję -gnato to już inna bajka (mógłby nie mieć i też by
 przeszedł testy na zgodność). Żaden język nie zwalnia od myślenia :D
 
- 
 87. Data: 2012-10-25 09:45:57
 Temat: Re: Dlaczego software to F35 jest pisany w C++ a nie w Ada
 Od: Maciej Sobczak <s...@g...com>
 W dniu środa, 24 października 2012 18:38:35 UTC+2 użytkownik Baranosiu napisał: 
 
 > Nie jest wcale tak "zawsze i wszędzie",
 
 Tak jest "zawsze i wszędzie" w Adzie, bo tak mówi standard.
 
 > przykład (liczenie silni metodą
 > rekurencyjną):
 [...]
 > I... dupa,
 
 Nie dupa, tylko wyjątek leci, zgodnie ze standardem.
 
 > GNAT ma opcję -gnato to już inna bajka
 
 To nie jest inna bajka:
 
 http://coding.derkeiler.com/Archive/Ada/comp.lang.ad
 a/2006-08/msg00623.html
 
 "GNAT without -gnato is _not_ a standard Ada compiler!"
 
 Użyj kompilatora zgodnego ze standardem, to będziesz miał standardowe zachowanie.
 
 > Żaden język nie zwalnia od myślenia :D
 
 Przecież nikt nigdzie tak nie twierdzi.
 
 --
 Maciej Sobczak * http://www.msobczak.com * http://www.inspirel.com
 
- 
 88. Data: 2012-10-25 18:21:38
 Temat: Re: Dlaczego software to F35 jest pisany w C++ a nie w Ada
 Od: Baranosiu <r...@w...pl>
 
 Dnia 25.10.2012 Maciej Sobczak <s...@g...com> napisał/a:
 >> Nie jest wcale tak "zawsze i wszędzie",
 >
 > Tak jest "zawsze i wszędzie" w Adzie, bo tak mówi standard.
 >
 >> przykład (liczenie silni metodą
 >> rekurencyjną):
 > [...]
 >> I... dupa,
 >
 > Nie dupa, tylko wyjątek leci, zgodnie ze standardem.
 >
 >> GNAT ma opcję -gnato to już inna bajka
 >
 > To nie jest inna bajka:
 >
 > http://coding.derkeiler.com/Archive/Ada/comp.lang.ad
 a/2006-08/msg00623.html
 >
 > "GNAT without -gnato is _not_ a standard Ada compiler!"
 >
 > Użyj kompilatora zgodnego ze standardem, to będziesz miał
 > standardowe zachowanie.
 
 
 To że ktoś gdzieś na forum tak pisze dorabiając swoje wytłumaczenie to jego
 sprawa. W AdaRM wyraźnie jest napisane (odnośnie Ada95):
 
 All parameter and result subtypes of the predefined integer operators
 are of such unconstrained subtypes, allowing extended-length registers
 to be used as operands or for the result. In an earlier version of Ada
 95, Integer was unconstrained.
 
 Co innego jak się dodało jawnie 'range', ale bez tego Ada95 nie była
 zobligowana do wygenerowania wyjątku (a że kompilatory dodawały to
 jako opcję, to się wcale nie dziwię, bo to była luka w
 standardzie), to samo zresztą dotyczyło typów rzeczywistych (mogły
 zwrócić "nieskończoność" bez generowania wyjątku jeśli się nie ustawiło
 odpowiednio zakresu).
 
- 
 89. Data: 2012-10-27 09:05:45
 Temat: Re: Dlaczego software to F35 jest pisany w C++ a nie w Ada
 Od: Maciej Sobczak <s...@g...com>
 W dniu czwartek, 25 października 2012 18:21:45 UTC+2 użytkownik Baranosiu napisał: 
 
 > To �e kto� gdzie� na forum tak pisze dorabiaj�c swoje wyt�umaczenie to
 jego
 > sprawa.
 
 To samo jest napisane w dokumentacji do GNATa, tylko bardziej rozwlekle. To, że ktoś
 gdzieś na forum usilnie próbuje rozkręcić flejma wokół czegoś, co nie jest problemem,
 to jego sprawa.
 
 Rekurencyjnie liczona silnia na Integerach to najbardziej oderwany od rzeczywistości
 przykład jaki może być i to na dwóch poziomach. Nie dość, że sama silnia liczona w
 ten sposób to najbardziej nadużywany przykład w historii, to jeszcze posłużyłeś się
 gołym typem Integer. Nikt tak nie robi (w szczególności: nikt tak nie zrobił w
 Ariane). Definiuje się nowy typ (albo chociaż podtyp) odpowiednio do dziedziny
 problemu - nie mam pojęcia z jakiej dziedziny pochodził Twój przykład z silnią, ale
 poprawiając ten sztuczny przykład przez użycie adekwatnie sztucznego typu wyszłoby
 coś takiego:
 
 with Ada.Text_IO;
 use Ada.Text_IO;
 
 procedure Test is
 
 type My_Int is range 0 .. 1000;
 
 function Silnia (N : in My_Int) return My_Int is
 begin
 if N = 0 then
 return 1;
 else
 return N * Silnia (N-1);
 end if;
 end Silnia;
 
 begin
 for I in My_Int range 1 .. 50 loop
 Put (My_Int'Image (I) & " " &
 My_Int'Image(Silnia (I)));
 New_Line;
 end loop;
 end Test;
 
 I teraz masz bardziej realistyczny wyjątek z powodu testu "range check" a nie
 "overflow check". Co więcej, łatwo swierdzić (statycznie), że użyte w kodzie operacje
 na My_Int nie mają prawa przekręcić typu bazowego, więc "overflow check" nie jest
 potrzebny - i to niezależnie od opcji -gnato ani od jej domyślnych ustawień.
 
 Czyli Twój przykład z silnią opisuje problem, którego nie ma.
 Nie ma go nawet w... przykłdzie z silnią.
 
 > W AdaRM wyra�nie jest napisane (odno�nie Ada95):
 
 Wyraźnie mamy rok 2012, więc od Twoich rozważań dzielą nas dwie edycje standardu.
 Twoje rozważania nie dotyczą też kodu z Ariane (ani żadnego realnie napisanego kodu),
 więc... o co chodzi?
 
 --
 Maciej Sobczak * http://www.msobczak.com * http://www.inspirel.com
 
- 
 90. Data: 2012-10-27 16:53:32
 Temat: Re: Dlaczego software to F35 jest pisany w C++ a nie w Ada
 Od: Baranosiu <r...@w...pl>
 Dnia 27.10.2012 Maciej Sobczak <s...@g...com> napisał/a: 
 > with Ada.Text_IO;
 > use Ada.Text_IO;
 >
 > procedure Test is
 >
 > type My_Int is range 0 .. 1000;
 
 No jak tak obetniesz, to Ci wyskoczy wyjątek, bo wystarczy że wynik
 trafi powiedzmy w 1001, ale daj range Integer'First+1 .. Integer'Last-1;
 i już wyjątek "fartem" nie wyskoczy pomimo przepełnienia. Po prostu
 był błąd w specyfikacji Ada95 (a taka obowiązywała w momencie lotu
 Ariane 5 :D) wg której 'range' było sprawdzane w momencie przypisania
 i jeśli pomimo "przekręcenia się licznika" wynik "fartem" siedział w
 zakresie zdefiniowanym przez 'range' to było ok.
 
 Załóżmy, że sprzętowo Integer jest powiedzmy 8-bitowy (wartości od
 -128 do 127, tak wiem, według specyfikacji musi być co najmniej
 16-bitowy ze znakiem, ale chodzi o prostotę przykładu), wtedy jeśli
 zrobisz
 
 subtype MyType is Integer range -100 .. 100;
 
 To wynik działania 2*100 nie wygeneruje wyjątku, bo to daje -56 (w
 arytmetyce 8-bitowej ze znakiem) a więc mieści się w zakresie
 -100..100. Ada95 niestety nie była odporna na takie rzeczy i tyle
 (niedoprecyzowana specyfikacja).
 
 Nie twierdzę, że podany przykład liczenia silni jest wzorem dobrego
 programowania, czy super optymalną metodą numeryczną, chodziło mi o
 podanie prostego przykładu, gdzie Ada95 nie ratowała "automagicznie"
 (przez na przykład wygenerowanie wyjątku) gdy obliczenia wyskakiwały
 poza zakres. Przy tego typu przepełnieniach bezpieczniki nie miały
 znaczenia (chyba, że kompilator miał dodatkowe mechanizmy ich
 wykrywania, ale to nie było wymagane przez specyfikację).
 


 do góry
 do góry![Jak przygotować skuteczną kreację do mailingu. 7 praktycznych porad [© dizain - Fotolia.com] Jak przygotować skuteczną kreację do mailingu. 7 praktycznych porad](https://s3.egospodarka.pl/grafika2/mailing/Jak-przygotowac-skuteczna-kreacje-do-mailingu-7-praktycznych-porad-219161-150x100crop.jpg) 
 
![Linki sponsorowane, dofollow, nofollow. Jak wykorzystać linkowanie w reklamie? [© bf87 - Fotolia.com] Linki sponsorowane, dofollow, nofollow. Jak wykorzystać linkowanie w reklamie?](https://s3.egospodarka.pl/grafika2/linki-sponsorowane/Linki-sponsorowane-dofollow-nofollow-Jak-wykorzystac-linkowanie-w-reklamie-216282-150x100crop.jpg) 
![Delegacje krajowe i zagraniczne: nowe stawki diety przy podróżach służbowych od 29.11.2022 i 01.01.2023 [© Nejron Photo - Fotolia.com] Delegacje krajowe i zagraniczne: nowe stawki diety przy podróżach służbowych od 29.11.2022 i 01.01.2023](https://s3.egospodarka.pl/grafika2/koszty-podatkowe/Delegacje-krajowe-i-zagraniczne-nowe-stawki-diety-przy-podrozach-sluzbowych-od-29-11-2022-i-01-01-2023-249192-150x100crop.jpg) 
 Elektromobilność dojrzewa. Auta elektryczne kupujemy z rozsądku, nie dla idei
Elektromobilność dojrzewa. Auta elektryczne kupujemy z rozsądku, nie dla idei 
 
 
![Wynajem mieszkania w Warszawie pochłania 44% pensji. Zobacz, jak wypadamy na tle Europy [© pixabay] Wynajem mieszkania w Warszawie pochłania 44% pensji. Zobacz, jak wypadamy na tle Europy](https://s3.egospodarka.pl/grafika2/rynek-najmu/Wynajem-mieszkania-w-Warszawie-pochlania-44-pensji-Zobacz-jak-wypadamy-na-tle-Europy-269391-150x100crop.jpg) 
![Lot z niespodzianką - jak overbooking zmienia podróż i jakie prawa mają pasażerowie? [© wygenerowane przez AI] Lot z niespodzianką - jak overbooking zmienia podróż i jakie prawa mają pasażerowie?](https://s3.egospodarka.pl/grafika2/prawa-pasazera/Lot-z-niespodzianka-jak-overbooking-zmienia-podroz-i-jakie-prawa-maja-pasazerowie-269384-150x100crop.jpg) 
![Lider z sercem: empatia i zaufanie jako klucz do sukcesu zespołu [© wygenerowane przez AI] Lider z sercem: empatia i zaufanie jako klucz do sukcesu zespołu](https://s3.egospodarka.pl/grafika2/lider/Lider-z-sercem-empatia-i-zaufanie-jako-klucz-do-sukcesu-zespolu-269133-150x100crop.png) 
![Bańka AI za 5 bilionów dolarów: Kiedy inwestorzy powiedzą: sprawdzam? [© wygenerowane przez AI] Bańka AI za 5 bilionów dolarów: Kiedy inwestorzy powiedzą: sprawdzam?](https://s3.egospodarka.pl/grafika2/AI/Banka-AI-za-5-bilionow-dolarow-Kiedy-inwestorzy-powiedza-sprawdzam-269382-150x100crop.png) 
 
 
 


