jac@paul.rutgers.edu (Jonathan A. Chandross) (04/24/91)
There was a discussion of thunks a few weeks back on alt.folklore.computers. Following is an excerpt from a posting by Joseph Newcomer on the real scoop on thunks. ------------------- Begin Quote ---- Joseph M. Newcomer Mon Apr 1 14:35:42 1991 jn11+@andrew.cmu.edu Carnegie Mellon Pittsburgh, PA Here's a REAL piece of folklore (dammit, stop the Jargon bandwidth debates; they may not consume much network bandwidth but they consume MY bandwidth). This is jargon-related. Let me start with some recent history... 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. ----------- End Quote ---- Jonathan A. Chandross Internet: jac@paul.rutgers.edu UUCP: rutgers!paul.rutgers.edu!jac