On Sep 16, 2015, at 11:36 PM, ben <bfranchuk at
jetnet.ab.ca> wrote:
On 9/16/2015 9:25 PM, Toby Thain wrote:
On 2015-09-16 6:18 PM, Dave G4UGM wrote:
...
It is notable that in order to solve all problems, a computer must permit
self modifying code.
Is that true? AFAIK Lambda calculus can describe any computable function
(as can a Turing machine), and it has no concept of "self modifying code".
I never studied any of that, but you do have to LOAD and RUN the program
ToSolveAnythingBut42
some how so I guess that would count AS Self Modifying Code.
"load" is an operation in a RAM stored program computer, sure. But
self-modifying code means a program that modifies its own code during execution. That is
a scheme that has on rare occasions been used in history. You could also apply the term
to instructions that store state in the form of instructions in memory for later use,
such as "return jump" in CDC machines. But I wouldn't apply the term there;
that's just a particular mechanism different from, but functionally equivalent, to a
return address stack.
In any case, I do not believe the original statement. First of all, it is well known that
no computer can solve "all problems" (see G?del). For those it *can* solve, as
far as I know, a Turing machine can solve a superset of what a stored program computer can
handle, and a Turing machine does NOT have self-modifying code.
paul