-
Path: news-archive.icm.edu.pl!agh.edu.pl!news.agh.edu.pl!newsfeed2.atman.pl!newsfeed.
atman.pl!news.task.gda.pl!not-for-mail
From: Baranosiu <r...@w...pl>
Newsgroups: pl.comp.programming
Subject: Re: Dlaczego software to F35 jest pisany w C++ a nie w Ada
Date: Sat, 27 Oct 2012 14:53:32 +0000 (UTC)
Organization: CI TASK http://www.task.gda.pl/
Lines: 35
Message-ID: <k6gsh9$8qr$1@news.task.gda.pl>
References: <3...@g...com>
<3...@g...com>
<k3idkc$ne3$1@node2.news.atman.pl>
<9...@g...com>
<k3spfr$46s$1@node2.news.atman.pl>
<8...@g...com>
<e...@g...com>
<1...@g...com>
<k695i4$gg0$1@news.task.gda.pl>
<8...@g...com>
<k6boug$3gr$1@news.task.gda.pl>
<2...@g...com>
Reply-To: Baranosiu <r...@w...pl>
NNTP-Posting-Host: user-46-112-165-48.play-internet.pl
Mime-Version: 1.0
Content-Type: text/plain; charset=iso-8859-2
Content-Transfer-Encoding: 8bit
X-Trace: news.task.gda.pl 1351349612 9051 46.112.165.48 (27 Oct 2012 14:53:32 GMT)
X-Complaints-To: a...@n...task.gda.pl
NNTP-Posting-Date: Sat, 27 Oct 2012 14:53:32 +0000 (UTC)
User-Agent: slrn/pre1.0.0-18 (Linux)
Xref: news-archive.icm.edu.pl pl.comp.programming:200423
[ ukryj 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
- 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
- Tworzenie Programów Nieuprzywilejowanych Opartych Na Wtyczkach
- 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
Najnowsze wątki
- 2025-01-17 Zniknął list gończy za "Frogiem". Frog się nam odnalazł?
- 2025-01-17 Kto wytłumaczy "głupiemu" prezydentowi Dudzie wielką moc prawną "dekretu premiera" TUSKA? [(C)Korneluk (2025)]
- 2025-01-17 Warszawa => Inżynier oprogramowania .Net <=
- 2025-01-17 Natalia z Andrychowa
- 2025-01-17 Gliwice => Business Development Manager - Dział Sieci i Bezpieczeńst
- 2025-01-17 Warszawa => System Architect (Java background) <=
- 2025-01-17 Warszawa => Full Stack .Net Engineer <=
- 2025-01-17 Gliwice => IT Expert (Network Systems area) <=
- 2025-01-17 Lublin => Programista Delphi <=
- 2025-01-17 Warszawa => Developer .NET (mid) <=
- 2025-01-17 Ostrów Wielkopolski => Konsultant Wdrożeniowy Comarch XL/Optima (Ksi
- 2025-01-17 Katowice => Senior Field Sales (system ERP) <=
- 2025-01-17 Wróblewo => Analityk finansowy <=
- 2025-01-17 Żerniki => Specjalista ds. Employer Brandingu <=
- 2025-01-17 pradnica krokowa