Self modifying code, lambda calculus - Re: ENIAC programming

Paul Koning paulkoning at comcast.net
Thu Sep 17 20:09:29 CDT 2015


> On Sep 17, 2015, at 5:52 PM, Jay Jaeger <cube1 at charter.net> wrote:
> 
> On 9/17/2015 2:27 PM, Paul Koning wrote:
>> 
>>> On Sep 17, 2015, at 2:56 PM, dwight <dkelvey at hotmail.com> wrote:
>>> 
>>> What is the definition of self modifying?
>>> Is it changing an instruction to execute in the thread to be run?
>>> How about adding or subtracting something to be done in an execution
>>> queue?
>> 
>> I'm not sure if there is a universally agreed to definition.
>> 
>> It also matters why the question is asked.  I can think of a couple of answers:
>> 
>> 1. the contents of instruction memory is subject to change.
>> 
>> 2. the contents of instruction memory is subject to change during execution of the program.
>> 
>> 3. individual instructions in a program are changed by the execution of that program.
>> 
>> 4. individual instructions in a program are changed by explicit data manipulation actions of that program.
>> 
>> #1 is true for most computers past and present, because they allow a program to be loaded into memory from external storage.
>> 
>> #2 is true in any program that uses overlays, or if the program is controlled by a debugger that uses "software breakpoints".
> 
> Don't / didn't some machines do/did this by setting an address trap
> register rather than modifying the breakpointed instruction?

Yes, that's why I said "software breakpoints", meaning breakpoints created by replacing the instruction with a break instruction, as opposed to "hardware breakpoints" which use address trap instructions.  Perhaps that's not universal terminology, but it's what GDB calls these things.  

> 
> Also, if the machine had explicit handling of overlays/segments, then
> that part of this becomes identical to #1.  (Burroughs?)

Or it's outside the picture entirely.  I was thinking of virtual address space here.  If you have paging or the like with physically addressed caches, then those are part of #1, yes.

	paul



More information about the cctech mailing list