On 09/21/2015 02:24 AM, Johnny Billquist wrote:
CHAIN is in no way similar to overlays. COMMONs, if
available, is a
nice way to preserve some data between different programs running.
CHAIN is (like someone said), about the same as a LOAD followed by a
RUN.
So, how is this different than overlays? Well, with overlays, you
only replace parts of your code. Some other parts stay around, as
well as all volatile data. So, you can still call code that is in the
resident part of memory, and which is not replaced by a different
overlay.
And yes, there are BASICs that can work with overlays. See DECs
BASIC+2. Has both commons, overlays and CHAIN. And if run under
RSTS/E if also have a core common block, which can be used to pass
data between programs when CHAINing.
I wonder what FORTRAN-style overlay hierarchy means. I know of
overlays, and on DEC OSes, it is a common technique, provided by the
linker, and is not tied to a specific language.
That's true--but a first encounter with the notion, at least for me,
involved FORTRAN, not any language. For example, consider that in the
CDC FTN reference, overlays are put ahead of I/O.
http://bitsavers.informatik.uni-stuttgart.de/pdf/cdc/cyber/lang/fortran/601…
PDF page 77 et seq.
I did say that the CHAIN statement was the equivalent of overlaying the
(0,0) overlay and perhaps the above reference shows what I mean.
COBOL also used overlays, and they were part of the standard language
and worked somewhat differently. See
http://bitsavers.informatik.uni-stuttgart.de/pdf/cdc/cyber/lang/cobol/60191…
PDF page 73 et seq.
I do know what the BASIC CHAIN statement means.
In the early 80s, I headed a team that implemented a multi-user
commercial BASIC on an 8085 micro system, eventually migrated to XENIX
and was in use in some places up until a few years ago. I still have a
couple of the design documents in my files--as well as the mandatory
(for then) t-shirt and coffee mug.
One of the lessons I learned from the experience is that compilation to
native machine code does not always result in faster code than P-code
implementations.
--Chuck