🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: comp.lang.functional
Article #877

Re: thunk's

#877
From: Bill Kinnersley
Date: Tue, 23 Apr 1991 19:26
89 lines
4799 bytes
In article <1151@creatures.cs.vt.edu>, lavinus@csgrad.cs.vt.edu writes:
> Hi out there!
> 
> I have a question that has been nagging me for quite some time: why do we
> call closures "thunk"s?  I mean, where did that word come from?  The only
> two theories I've heard, neither with *any* supporting evidence, are that
> it is an anagram for Knuth, and that perhaps it is a facetious past tense
> of "think".  Anyone know??
> 

The following AUTHORITATIVE answer was recently posted to 
alt.folklore.computers:

------------

Newsgroups: alt.folklore.computers
Subject: THUNKS
Message-ID: <QbxsiCu00VsaA0oms6@andrew.cmu.edu>
From: jn11+@andrew.cmu.edu (Joseph M. Newcomer)
Date: 1 Apr 91 19:35:42 GMT
Organization: Carnegie Mellon, Pittsburgh, PA

[...]

Back around 2.6, I sent a note to Eric saying that the definition of "thunks"
was not quite accurate.  He had included the explanation "...the sound of
the result hitting the stack" whereas I remembered it as "...the sound of
the result hitting the accumulator".  While he held that his two correspondents
were absolutely certain they were right, I was absolutely certain that
they were wrong.  Machines in 1960 didn't HAVE stacks; they
had software implementations of stacks, and no sane programmer would
have developed a result in the accumulator, pushed it onto the stack, and
then have to pop it off the stack back to the accumulator; this was too
expensive.  Besides, I pointed out that the sound of a result hitting a
stack is more like a "whoosh" than a "thunk".

The "stack" version remained, and I was certain this was wrong.  I called or
sent mail to several people trying to find their memory of the evolution
of this
term and to try to locate Peter Z. Ingerman.  Brian Randell claimed that he
found the name unacceptable, and in his book ("Algol-60 implementation")
they referred to the construct as "implicit subroutine".  Art Evans said
he thought the term came about because the result had "already been
thunk about".  Nobody else had any leads.  Gwen Bell at the Computer
Museum said that ACM probably had Peter's address as he had been an
editor of Computing Reviews until a few years ago.

This morning I called ACM headquarters, got Peter's address, and
directory assistance gave me his phone number.  I introduced myself and
told about both my interest in computer history and my desire to know
the etymology of the word "thunks".  He asked "do you /really/ want to
know?"  After being convinced I was serious, he gave the explanation. 
The following transcript is from my notes which I tried to make
reasonably complete.  I asked Peter for permission to post this to
a.f.c. and he granted it.  Any errors, mis-spellings of peoples' names,
or omissions are my fault.

"Ned Irons, Wally Feuerzeig, Kirk Sampley, Herb Tanner and myself (and I
think there were a couple of others, but I'm not sure) got together to
decide how Algol call-by-name worked.  We ended up in Princeton (where
Ned Irons worked) and we co-opted a classroom for our discussion.  We
tossed the thing back and forth and worked out the idea that we had to
do it differently if the parameter was a label, a variable, an
expression, an array, etc.   By the time we were done it was 2 in the
morning (you understand how it gets to be 2 in the morning...and that is
possibly the most significant part of this story) and it suddenly dawned
on us, more or less simultaneously, that all of the thinking about this
-- that it was an array, label, etc., -- could be done at compile time. 
This meant that all of the thinking was already done.  At 2 in the
morning the past tense of "think" is "thunk", and that's how the name
came about.

"Interestingly enough, Andrei Yershov [of the Soviet Academy of
Sciences, and, alas, the late Andrei Yershov now; one of the significant
pioneers of the field...-jmn] asked me this same question at a
conference in Warsaw a few years ago.  This was after he had introduced
the word "thunk" into the Russian language as "methoda sankov" [the
phonetic rendering; spelling is Peter's English transliteration...-jmn],
which translates as "the method of thunks"."

Of the responses I got, Art's was the correct one.

[...]

						joe
------------

-- 
--Bill Kinnersley
Technical Details
Message-ID: <1991Apr23.142624.29931@kuhub.cc.ukans.edu>
Path: arc1-ca.pugleaf.net!utzoo!utgpu!news-server.csri.toronto.edu!rpi!zaphod.mps.ohio-state.edu!caen!kuhub.cc.ukans.edu!kinnersley
References: <1991Apr19.064216.23597@gucis.sct.gu.edu.au> <1151@creatures.cs.vt.edu>

Show Full Headers
Complete Article Headers
Path: arc1-ca.pugleaf.net!utzoo!utgpu!news-server.csri.toronto.edu!rpi!zaphod.mps.ohio-state.edu!caen!kuhub.cc.ukans.edu!kinnersley
From: kinnersley@kuhub.cc.ukans.edu (Bill Kinnersley)
Newsgroups: comp.lang.functional
Subject: Re: thunk's
Message-ID: <1991Apr23.142624.29931@kuhub.cc.ukans.edu>
Date: 23 Apr 91 14:26:24 CDT
References: <1991Apr19.064216.23597@gucis.sct.gu.edu.au> <1151@creatures.cs.vt.edu>
Organization: University of Kansas Academic Computing Services
Lines: 89