Re: Compiler and interpreter origins

glen herrmannsfeldt <gah@ugcs.caltech.edu>
5 Aug 2004 14:27:21 -0400

          From comp.compilers

Related articles
Compiler and interpreter origins la@iki.fi (Lauri Alanko) (2004-07-28)
Re: Compiler and interpreter origins Jeffrey.Kenton@comcast.net (Jeff Kenton) (2004-08-04)
Re: Compiler and interpreter origins rweaver@ix.netcom.com (Dick Weaver) (2004-08-05)
Re: Compiler and interpreter origins gah@ugcs.caltech.edu (glen herrmannsfeldt) (2004-08-05)
Re: Compiler and interpreter origins rbates@southwind.net (Rodney M. Bates) (2004-08-09)
Re: Compiler and interpreter origins nick.roberts@acm.org (Nick Roberts) (2004-08-09)
Re: Compiler and interpreter origins nmm1@cus.cam.ac.uk (2004-08-09)
Re: Compiler and interpreter origins slimick@venango.upb.pitt.edu (John Slimick) (2004-08-09)
Re: Compiler and interpreter origins Martin.Ward@durham.ac.uk (Martin Ward) (2004-08-10)
Re: Compiler and interpreter origins samiam@moorecad.com (Scott Moore) (2004-08-10)
[5 later articles]
| List of all articles for this month |

From: glen herrmannsfeldt <gah@ugcs.caltech.edu>
Newsgroups: comp.compilers
Date: 5 Aug 2004 14:27:21 -0400
Organization: Comcast Online
References: 04-07-077
Keywords: history
Posted-Date: 05 Aug 2004 14:27:21 EDT

Lauri Alanko wrote:
(snip)


> Firstly, back when everything was done in pure machine code or
> assembly, how common was the use of self-modifying code?


(snip)


The IBM OS/360 Fortran library does it. I don't believe I know of any
compilers that generate self modifying code, though.


The IBM 360/91, one of the earlier machines doing out of order
execution, had special logic to detect modified instructions that had
been previously fetched.


IBM, as of OS/360, has three attributes they apply to load modules
(executable code files). Serially reusable, reentrant, and
refreshable. Reentrant and refreshable modules usually should not be
self modifying, and later OS would store then in read only page
frames.


Fortran library routines were serially reusable, but not reentrant or
refreshable.


Also, OS/360 channel programs were often self modifying.


-- glen
[The IBM 360 architecture specifically permits instruction modification
without extra serialization. I gather it's still a pain for hardware
implementers, although it's now much more comment to do an EXecute
instruction to run one instruction created at runtime. -John]



Post a followup to this message

Return to the comp.compilers page.
Search the comp.compilers archives again.