On Mon, 24 Sep 2001, Kurt D. Starsinic wrote:
> On Sep 23, Simon Cozens wrote:

> > Once a language acknowledges that it is dealing with pure,
> > honest-to-God integers, then it is fairly easy to compile down to
> > integer-specific opcodes.
>     Of course, no (implementable) programming language *ever* deals with
> actual integers.  They always deal with limited domains.

If I type 3**100000 I get an answer. That number is 19816 bytes long.

The domain is limited only because the informational content of very large
integers is, well, very large, in the way it is represented. Not only the
machine has a maximum number of bytes it can handle, but also it has a
limited amount of time before the user gets tired of waiting for the
result, the latter of which puts a limit on practicality well before the
limit on possibility is put. Whatever. Given a computer with unbounded
memory and unbounded time, for every finite number N you may find a finite
pointer size (roughly, log(log(N))) which will make ordinary
unbounded-integer algorithms work on that size of numbers.

Ruby's Integers are unbounded (given this explanation of what unbounded
means in the context of computation)

In Ruby you don't work with modulo integers by default; you work with
unbounded ones. If you want modulo integers in Ruby, you can do modulo by
hand, or use a library that can do operations on lots of those numbers at
once (e.g. NArray, a cheap equivalent of PDL)

So, will you tell me what is an actual integer and why it can't be put in
a machine. (Simon should also explain to tell me what is a pure,
honest-to-God integer and its occurences in parrot bytecode)

________________________________________________________________
Mathieu Bouchard                   http://hostname.2y.net/~matju

Reply via email to