🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: comp.lang.functional
Article #876

Re: thunk's

#876
From: Peter Sestoft
Date: Tue, 23 Apr 1991 16:35
43 lines
2525 bytes
raja@copper.ucs.indiana.edu (Raja Sooriamurthi) writes:

>>>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 word _thunk_ derives from the implementation of call-by-name in
>>Algol 60.  We do not know the origin of this name, but we have heard
>>that it refers to the sound made by data when pushed onto the stack in
>>a running Algol system."

>>  ---Abelson and Sussman, "Structure and Interpretation of Computer Programs"

>To quote another source: 

>	"The implementation of call-by-name is discusses by Ingerman
>who introduces the term thunk to refer to this type of closure
>[Ingerman 61]. (The term _thunk_ was presumably a reference to the
>'noise' that a static chain pointer makes as it moves within
>activation records)" 

>			-Horowitz "Fundamentals of Programming Languages"

>[Ingerman 61] Ingerman, P. "Thunks" Comm. ACM, 4,1,1961 55-58

There is little doubt that the term "thunk" originates in P.Z.
Ingerman's paper, but the paper is silent as to its etymology.  

The pseudo-onomatopoetic explanations for "thunk2 offered above are
clearly not to be taken seriously.  By the way, the paper contains
other examples of linguistic creativity: one example procedure is
called "glub", another "george"; and a procedure (due to Sattley) for
allocating arrays is called the FUSBUDGET mechanism.

As far as I recall, Peter Naur described the word as "foolish American
slang" in a lecture --- or maybe it was the "dope vector" he derided.

-- 
Peter Sestoft  *  sestoft@diku.dk   *   DIKU,  Department of Computer Science
University of Copenhagen, Universitetsparken 1, DK-2100 Copenhagen O, Denmark
Tel: +45 31 39 64 66  *  Direct: +45 31 39 33 11/406  *  Fax: +45 31 39 02 21
Technical Details
Message-ID: <1991Apr23.163500.22136@odin.diku.dk>
Path: arc1-ca.pugleaf.net!utzoo!utgpu!news-server.csri.toronto.edu!rpi!uupsi!sunic!dkuug!diku!sestoft
References: <1991Apr19.064216.23597@gucis.sct.gu.edu.au> <1151@creatures.cs.vt.edu> <harlan.672371659@copper> <raja.672375913@copper>

Show Full Headers
Complete Article Headers
Path: arc1-ca.pugleaf.net!utzoo!utgpu!news-server.csri.toronto.edu!rpi!uupsi!sunic!dkuug!diku!sestoft
From: sestoft@diku.dk (Peter Sestoft)
Newsgroups: comp.lang.functional
Subject: Re: thunk's
Message-ID: <1991Apr23.163500.22136@odin.diku.dk>
Date: 23 Apr 91 16:35:00 GMT
References: <1991Apr19.064216.23597@gucis.sct.gu.edu.au> <1151@creatures.cs.vt.edu> <harlan.672371659@copper> <raja.672375913@copper>
Sender: sestoft@gere.diku.dk
Organization: Department of Computer Science, U of Copenhagen
Lines: 43