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] |
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]
Return to the
comp.compilers page.
Search the
comp.compilers archives again.