[OT] Pascal ma 50 rokov

Aleš Procháska ales.prochaska na divesoft.com
Středa Březen 3 02:26:48 CET 2021


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.
> 
> Aleš Procháska
> 
_______________________________________________
HW-list mailing list  -  sponsored by www.HW.cz
Hw-list na list.hw.cz
http://list.hw.cz/mailman/listinfo/hw-list


Další informace o konferenci Hw-list