[inforoots] bits again

Michael Albaugh m.e.albaugh at gmail.com
Tue Nov 28 08:43:49 PST 2006


On 11/27/06, Niels Ole Finnemann <finneman at imv.au.dk> wrote:

> [...] If I may add a
> question I would ask: who then was first
> referring to or to practise Self Modifying code - and on which machine?

The first use I know of was on the first "real"
stored-program computer, EDSAC. Manchester
Baby, a "proof of concept" machine, predates
EDSAC, but EDSAC was a real, production machine
that stored its program and data in a unified memory
and lacked B-Boxes (index registers in modern
terminology), so pretty much had to use self-
modifying code to do array references at all.
That said, even Von Neumann's proposed machine
could do that, so "not so interesting".

More to the point, EDSAC had a set of "Initial Orders"
which were read into memory from an early "Read Only
Memory", and then read programs in a form that was
part-way between what we now call "assembly code"
and what many would consider "strong" self-modifying
code. The input was nominally human-readable, and could
include "library" routines that were linked in appropriately.
The Initial Orders transformed this input into actual
machine instructions and placed them in memory, possibly
making further changes along the way. The debugging
facilities of the EDSAC also made use of the ability to
change code in situ, and to partially interpret it.
All in the very early 1950s. I used to have a paper
on line, but it is copyrighted and I lost that web-site.
I recall that the Royal Society has put their archives
on line "temporarily", so perhaps someone (I?)
should grab an official copy, or at least a pointer.
The paper was by Hartree, in the Procedings of the
Royal Society. If I can find my copy, I'll post more
details. My main point is that "self modifying" as
a means of extending the machine, rather than as
a way to do trivial loops across arrays, was present
very early, in the first useful stored-program machine
(by my definition of that term :-)

> A short comment concerning Leibniz: I believe his
> idea was that two bits could represent all kinds
> of logical reasoning because they could be
> ascribed higher order logical meaning, while the
> modern use of the digits presupposes that they
> function as letters which are empty of content.
> Would you agree in this difference?

Not all that conversant with Leibniz's argument, although,
yes, I dimly recall that he (as others of his time) did not
draw such a sharp line between mathematics and
broader philosophy as is common today. Or should I
say "is common among mathematicians today".
there are plenty of people around using the complextity
of modern physics as a stalking-horse for psycho-babble. :-)
Backing down somewhat from that, even if you exclude the
moral overtones, Leibniz's "higher order" has much to
do with the sort of thing that led to Principia Mathematica,
and to Goedel's incompleteteness theorem, which was a
shock to many at the time.

   Mike



More information about the inforoots mailing list