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"
--
http://mail.python.org/mailman/listinfo/python-list

Reply via email to