Robert J. Bradbury wrote:
> On Sat, 6 May 2000, Billy Brown wrote:
> > This is just a special case of a much more general (and obvious) rule:
> > form of software can ever perform a computation that could not, in
> > principle, be done by the hardware it runs on.
> I think this needs to be phrased differently. I can write a program
> to take the square root of a number that the hardware executing that
> program simply cannot do. I can also design hardware that would
> take the square root of a number that would be incapable of executing
> said program. Hardware that can execute programs and compute square
> roots would by definition be larger than either case separately.
That was why I said 'in principle'. The hardware may not have an intrinsic
square root operation, but it can simulate one using a series of more
elementary operations. Indeed, it must be capable of doing so or it would
not be able to run your square root-computing software.
Now, I realize that my statement seems painfully obvious when taken in this
sense, especially when we're talking about something as simple as a program
to compute square roots. But when you start putting more and more
abstraction layers between the hardware and the top layer of your software
it becomes very easy to forget that all you're really doing is stringing
together elementary hardware operations. Then you get speculations about
'virtual storage', 'virtual computers', and all kinds of other cool-sounding
stuff that makes no logical sense.
This archive was generated by hypermail 2b29 : Thu Jul 27 2000 - 14:10:48 MDT