Some of the purposes of a good arithmetic are:
- To give the system programmer freedom, essentially to use all the speed and 
flexibility of the CPU instructions.
- To allow fast-running code, it means that having ways to specify 32 or 64 bit 
operations in a short way.
- To allow programs that aren't bug-prone, both with compile-time safeties and 
where they aren't enough with run-time ones (array bounds, arithmetic overflow 
among not-long types, etc).
- Allow more flexibility, coming from certain usages of multi-precision 
integers.
- Good CommonLisp implementations are supposed to allow both fast code 
(fixnums) and safe/multiprecision integers (and even untagged fixnums).


Andrei Alexandrescu:
> But if we really start down that path, infinite-precision integrals are 
> the only solution. Because when you multiply two longs, you'd need 
> something even longer and so on.

Well, having built-in multi-precision integer values isn't bad. You then need 
ways to specify where you want the compiler to use fixed length numbers, for 
more efficiency.

Bye,
bearophile

Reply via email to