-
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> szukaj wiadomości tego autora
[ pokaż wszystkie nagłówki ]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ę).
Następne wpisy z tego wątku
- 29.10.12 10:40 Maciej Sobczak
- 29.10.12 12:01 Baranosiu
- 29.10.12 15:56 Maciej Sobczak
Najnowsze wątki z tej grupy
- Perfidne ataki krakerów z KRLD na skrypciarzy JS i Pajton
- Instytut IDEAS może zacząć działać: "Ma to być unikalny w europejskiej skali ośrodek badań nad sztuczną inteligencją."
- Instytut IDEAS może zacząć działać: "Ma to być unikalny w europejskiej skali ośrodek badań nad sztuczną inteligencją."
- Instytut IDEAS może zacząć działać: "Ma to być unikalny w europejskiej skali ośrodek badań nad sztuczną inteligencją."
- U nas propagują modę na SI, a w Chinach naukowcy SI po kolei umierają w wieku 40-50lat
- C++. Podróż Po Języku - komentarz
- "Wuj dobra rada" z KDAB rozważa: Choosing the Right Programming Language for Your Embedded Linux Device
- Nowa ustawa o ochronie praw autorskich - opis problemu i szkic ustawy
- Alg. kompresji LZW
- Popr. 14. Nauka i Praca Programisty C++ w III Rzeczy (pospolitej)
- Arch. Prog. Nieuprzywilejowanych w pełnej wer. na nowej s. WWW energokod.pl
- 7. Raport Totaliztyczny: Sprawa Qt Group wer. 424
- TCL - problem z escape ostatniego \ w nawiasach {}
- Nauka i Praca Programisty C++ w III Rzeczy (pospolitej)
- testy-wyd-sort - Podsumowanie
Najnowsze wątki
- 2025-04-21 Z innej beczki: Homologacja t3b
- 2025-04-21 Postulat policji: zakaz broni w komunikacji miejskiej - pyt.: Czy takie prawo jest już w Polsce?
- 2025-04-21 Czy można palić ognisko na własnej posesji 2025?
- 2025-04-21 Ka? 1/4 dy mo? 1/4 e wygraÄ Wybory Prezydenckie w maju 2025
- 2025-04-21 Każdy może wygrać Wybory Prezydenckie w maju 2025
- 2025-04-21 Każdy może wygrać Wybory Prezydenckie w maju 2025
- 2025-04-21 Wykorzystanie nadmiarowej energii OZE do produkcji wodoru w procesie recyklingu metali szlachetnych ze złomu elektronicznego - projekt wdrożeniowy w ramach unijnej strategii zielonej gospodarki
- 2025-04-21 Gdańsk => Team Lead Data Engineer (Snowflake) <=
- 2025-04-21 Warszawa => Key Account Manager (Usługi HR) <=
- 2025-04-21 Wrocław => Key Account Manager (ERP) <=
- 2025-04-21 Warszawa => Key Account Manager IT <=
- 2025-04-21 Białystok => Team Lead Data Engineer (obszar Snowflake) <=
- 2025-04-21 Zielona Góra => Konsultant wdrożeniowy Comarch XL (Logistyka, WMS, P
- 2025-04-21 Kraków => NMS System Administrator <=
- 2025-04-21 Kraków => NMS System Administrator <=