Xref: utzoo comp.lang.c:11380 comp.arch:5544
Path: utzoo!attcan!uunet!husc6!cca!g-rh
From: g-rh@cca.CCA.COM (Richard Harter)
Newsgroups: comp.lang.c,comp.arch
Subject: Re: Self-modifying code
Message-ID: <31024@cca.CCA.COM>
Date: 17 Jul 88 16:18:43 GMT
References: <5262@june.cs.washington.edu> <260@thor.wright.EDU> <989@garth.UUCP>
Reply-To: g-rh@CCA.CCA.COM (Richard Harter)
Organization: Computer Corp. of America, Cambridge, MA
Lines: 28

In article <989@garth.UUCP> smryan@garth.UUCP (Steven Ryan) writes:
>>As to the semantics of self-modifying code, isn't it identical to
>>a Turing machine's or am I missing something?

>No. The state mechanism of a Turing machine is fixed and finite.

>To show equivalence, it is necessary to show that self modifying code
>does not increase the number of states. Usually, people just appeal
>to Church-Turing and assume all the states are there, somewhere.

	This needs some qualification.  Strictly speaking no computers
are Turing machines because they do not have an infinite memory or 
equivalent.  However almost all computers would be universal Turing
machines if they somehow did.

	However it depends on what level you are speaking of.  If you
are talking about the hardware, that's a *qualified* Turing machine.
You can talk about a language being a virtual Turing machine; that makes
sense, albeit you want to be more careful with your language than I am
being here.  The language remains fixed, and most languages are universal
Turing machines.  In this case the SMC is data.  If you want to talk
about a specific program as a virtual Turing machine (probably not
universal) then, yes, it can't modify itself.
-- 

In the fields of Hell where the grass grows high
Are the graves of dreams allowed to die.
	Richard Harter, SMDS  Inc.