Path: 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> Sender: sestoft@gere.diku.dk Organization: Department of Computer Science, U of Copenhagen Lines: 43 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