[OT] Pascal ma 50 rokov
Pavel Hudecek
edizon na seznam.cz
Středa Březen 3 02:52:44 CET 2021
V původním dotazu je: „saturovaná aritmetika nebo alespoň nějaká indikace přetečení“.
Nejsem si jist, zda správně chápu pojem „saturovaná aritmetika“ ale představuji si, že třeba při opakované inkrementaci byte se hodnota nakonec zastaví na 255, dál neporoste, ani neudělá error.
PH
Od: Aleš Procháska
Teď se trochu neorientuju. Já jsem to pochopil jako výjimku při aritmetickém přetečení, ta je v Pascalu implementovaná z definice, jen je zobecněná na libovolný interval (a též libovolnou mapovací funkci pole). Samozřejmě rozumný překladač ji implementuje jinak pro ten obecný interval a jinak pro speciální velikosti operandů kde se to dá poznat z CF/OF apod. Nebo myslíte ještě něco jiného?
Aleš Procháska
-----Original Message-----
From: Hw-list <hw-list-bounces na list.hw.cz> On Behalf Of Miroslav Mraz
Sent: Tuesday, 2 March, 2021 21:25
To: hw-list na list.hw.cz
Subject: Re: [OT] Pascal ma 50 rokov
Tohle jsem na mysli zrovna neměl, to není celkem problém. Spíš mi šlo například o konstrukci, která v clang vede na některou z funkcí https://releases.llvm.org/3.7.0/tools/clang/docs/LanguageExtensions.html#multiprecision-arithmetic-builtins
které ovšem nejsou v gcc. On to vlastně ani ten clang neřeší, předhodí to LLVM a teprve pak se to nějak překládá do assembleru příslušné architektury. Přitom to není žádná obludnost - tohle musí umět každý procesor aby vůbec mohl něco počítat v celočíselné aritmetice, takže si myslím, že by to snad mohlo být řešitelné na úrovni jazyka. Jak se to správně řeší v gcc netuším, zřejmě na to nějaká intrinzická funkce bude, ale nenašel jsem jí.
Mrazík
Dne 02. 03. 21 v 19:07 Aleš Procháska napsal(a):
> Ano, Pascal to má nativně. A nejen nad celým integerem, ale nad libovolným uživatelským intervalem. Máme-li například deklaraci
>
> var p : array [1..10] of 0..999;
>
> pak každý z příkazů
>
> p[11]:=0;
> p[1]:=1000;
>
> vyvolá chybu. Podobně to má Ada, tam se v takovém případě vyvolá (ošetřitelná) výjimka.
------------- další část ---------------
HTML příloha byla odstraněna...
URL: <http://list.hw.cz/pipermail/hw-list/attachments/20210303/f3d68ceb/attachment.html>
Další informace o konferenci Hw-list