The Importance of Terminology's Quality

John W Kennedy jwkenne at attglobal.net
Wed Jul 2 03:56:58 CEST 2008


Robert Maas, http://tinyurl.com/uh3t wrote:
> Why this response is so belated:
>   <http://groups.google.com/group/misc.misc/msg/cea714440e591dd2>
> = <news:rem-2008jun25-003 at yahoo.com>
>> Date: Tue, 24 Jun 2008 18:42:15 -0400
>> From: John W Kennedy <jwke... at attglobal.net>
>> ... the "thunks" were necessary at the machine-language level to
>> /implement/ ALGOL 60, but they could not be expressed /in/ ALGOL.
> 
> Ah, thanks for the clarification. Is that info in the appropriate
> WikiPedia page? If not, maybe you would edit it in?

It is explained s.v. "thunk", which is referenced from "ALGOL 60". The 
ALGOL "pass-by-name" argument/parameter matching was perhaps the most 
extreme example ever of a language feature that was "elegant" but 
insane. What it meant, in effect, was that, unless otherwise marked, 
every argument was passed as two closures, one that returned a fresh 
evaluation of the expression given as the argument, which was called 
every time the parameter was read, and one that set the argument to a 
new value, which was called every time the parameter was set.

See <URL:http://www.cs.sfu.ca/~cameron/Teaching/383/PassByName.html>.

ALGOL 60 could not create generalized user-written closures, but could 
create one no more complex than a single expression with no arguments of 
its own simply by passing the expression as an argument. But it was not 
thought of as a closure; that was just how ALGOL 60 did arguments.
-- 
John W. Kennedy
  "Give up vows and dogmas, and fixed things, and you may grow like 
That. ...you may come to think a blow bad, because it hurts, and not 
because it humiliates.  You may come to think murder wrong, because it 
is violent, and not because it is unjust."
   -- G. K. Chesterton.  "The Ball and the Cross"



More information about the Python-list mailing list