The Importance of Terminology's Quality

John W Kennedy jwkenne at attglobal.net
Tue Jul 22 21:54:05 CEST 2008


Martin Gregorie wrote:
> I used Algol 60 on an Elliott 503 and the ICL 1900 series back when it was
> a current language. The term "thunking" did not appear in either compiler
> manual nor in any Algol 60 language definition I've seen.

It doesn't have to; Algol 60 thunks are not part of the language. 
However, practical implementation of Algol 60 call by name means that 
thunks are created by every Algol 60 compiler, and the word "thunk" was 
coined in 1961 to designate them.

> A60 could pass
> values by name or value and procedures by name. That was it. Call by name
> is what is now referred to as reference passing.

Either you misunderstood (because in many simple cases the semantics of 
call-by-reference and call-by-name cannot be distinguished) or the 
compiler you used implemented non-standard Algol (which was fairly 
common in compilers meant for day-to-day practical work). Algol 
call-by-name was a unique form that subsequent language designers have 
recoiled from in horror.

(Historically, "call-by-name" has sometimes been used in non-Algol 
contexts to mean "call-by-reference".)

> Algol 60 did not have 'functions'. It had procedures which could be
> declared to return values or not. A procedure that returned a value was
> equivalent to a function but the term 'function' was not used.

This is simply wrong. You are accurately describing the language syntax, 
  which used (as PL/I does) the keyword "procedure" for both functions 
and subroutines, but Algol documentation nevertheless referred to 
"functions".

> Similarly
> it did not have a mechanism for declaring anonymous procedures. That, like
> the incorporation of machine code inserts, would have been a
> compiler-specific extension, so it is a terminological mistake to refer to
> it without specifying the implementing compiler.

Standards-conforming Algol compilers had a limited ability to create 
de-facto anonymous functions in the call-by-name implementation.

-- 
John W. Kennedy
  "Information is light. Information, in itself, about anything, is light."
   -- Tom Stoppard. "Night and Day"



More information about the Python-list mailing list