|[6 earlier articles]|
|Re: Jensen's device firstname.lastname@example.org (1998-03-30)|
|Re: Jensen's device email@example.com (1998-03-30)|
|Re: Jensen's device firstname.lastname@example.org (Uday S. Reddy) (1998-03-30)|
|Re: Jensen's device Andrew.Walker@nottingham.ac.uk (Dr A. N. Walker) (1998-04-03)|
|Re: Jensen's device email@example.com (1998-04-03)|
|Re: Jensen's device firstname.lastname@example.org (Dr Richard A. O'Keefe) (1998-04-03)|
|Re: Jensen's device email@example.com (1998-04-03)|
|From:||firstname.lastname@example.org (Richard Weaver)|
|Date:||3 Apr 1998 17:13:25 -0500|
> [Remember that call by name was a mistake. The Algol60 was trying to write
> an elegant definition of call by reference and inadvertently created call
> by name. Nobody realized it until the paper on Jensen's device.
Hmmmm. At the ACM SIGPLAN History of Programming Languages
Conference, 1978, Peter Naur said "My own experience stemmed primarily
from my work with the EDSAC, Cambridge England, in 1951 and 1953.
This had given me a strong impression of the importance of closed
subroutines, including the use of what in retrospect may be described
as parameters called by name", from "History of ...", Wexelblat,
Seems odd that in a section titled "Influence from other Languages"
Naur would list an influence that led to a "mistake". As best I can
tell, EDSAC subroutine initialization moved the "address" field of
parameters into those instructions requiring that address. Since the
"address" field included, I think, both the B register (an index
register?) and a data type (long,short?), the effect is, as Naur said,
sort of a call by name. The ?'s indicate a quick look; I did not spend
a lot of time reviewing EDSAC.
Return to the
Search the comp.compilers archives again.