Tom  Marchant wrote:

<begin extract>
That is one way to save the caller's registers, not the only
documented Linkage convention.
</end extract>

and this is formally correct.  There is, however, something of an
obligation to use a caller-/invoker-supplied save area when one is in
fact supplied.  There may even be an obligation to adhere to SA back-
and forward-chaining conventions.  (Some statement-level languages use
them not only for error handling but in implementing language
features, e.g., long jumps, out-of-block GOTOs,  and condition
handling.)

My own view is that the original---in their way admirable---linkage
conventions of OS/360 were inadequate.  They failed to encompass,
among other things, machinery for ensuring that code could be
reentrant, invoked recursively, the [optional] use of descriptors, and
for the management of stack-based automatic/scratch/local storage.

The unfortunate consequences of this minimality were many.  Different
SLPLs constructed their run-time environments very differently, and
too much detailed lore  must now be mastered before successful ILC is
possible.

It is posslble to rail against some of the design elements of the LE,
but the babel we now makes it clear that something very like it was
needed early on.

John Gilmore, Ashland, MA 01721 - USA

----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to [email protected] with the message: INFO IBM-MAIN

Reply via email to