Re: Jensen's device

rweaver@ix.netcom.com (Richard Weaver)
3 Apr 1998 17:13:25 -0500

          From comp.compilers

Related articles
[6 earlier articles]
Re: Jensen's device genew@vip.net (1998-03-30)
Re: Jensen's device mslamm@olive.mscc.huji.ac.il (1998-03-30)
Re: Jensen's device u-reddy@cs.uiuc.edu (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 jmccarty@sun1307.spd.dsccc.com (1998-04-03)
Re: Jensen's device ok@atlas.otago.ac.nz (Dr Richard A. O'Keefe) (1998-04-03)
Re: Jensen's device rweaver@ix.netcom.com (1998-04-03)
| List of all articles for this month |

From: rweaver@ix.netcom.com (Richard Weaver)
Newsgroups: comp.compilers
Date: 3 Apr 1998 17:13:25 -0500
Organization: Netcom
References: 98-03-193 98-03-259
Keywords: algol60, question



> [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.
-John]


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,
p.100.


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.


Dick W




--


Post a followup to this message

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