Re: Call by name in Algol-60

"John Lindsay" <>
24 Mar 1998 22:41:51 -0500

          From comp.compilers

Related articles
Call by name in Algol-60 (RogerHA) (1998-03-07)
Re: Call by name in Algol-60 (1998-03-15)
Re: Call by name in Algol-60 (RogerHA) (1998-03-18)
Re: Call by name in Algol-60 (John Lindsay) (1998-03-18)
Re: Call by name in Algol-60 (1998-03-20)
Re: Call by name in Algol-60 (John Lindsay) (1998-03-24)
| List of all articles for this month |

From: "John Lindsay" <>
Newsgroups: comp.compilers
Date: 24 Mar 1998 22:41:51 -0500
Organization: Royal Military College of Canada
References: 98-03-074 98-03-124 98-03-160 98-03-193
Keywords: algol60 wrote:

.... snip ....

> ..... There are no implicit type conversions
> permitted in these languages,

There is one -- integer to real.

> .... so, there is no need for run time type
> checks too.

Right, the distinction between passing a variable and passing
a value is pretty explicit, and this takes care of the problem nicely.

> ..... In Algol-60 type checking between compilation units was
> nonexistent (as far as I know), and all things you said are absolutely
> correct in case of Algol.

It seems that the natural tendency to make 'obvious', 'simple',
'elegant' extensions to languages goes past some sort of boundary when
one considers procedure/function calls. The results of doing things
like array variables and expressions, especially when one allows array
cross-sections or slices as pseudo-variables rather than just as
values, may be obvious, simple and elegant in one way and
counter-intuitive, complex and ugly in several others. I think we
look longingly and frustratedly in such directions.

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

This seems right. It was a couple of years until people realized that
a useful, horrible, delightful, problematic and interesting can of
worms had indeed been opened.
John H. Lindsay
Department of Mathematics and Computer Science

Phone: (613) 541-6000--1--6419
Fax: (613) 541-6584

Post a followup to this message

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