thunk
Also found in: Dictionary, Thesaurus, Idioms, Wikipedia.
thunk
[thəŋk] (computer science)
An additional subprogram created by the compiler to represent the evaluation of the argument of an expression in the call-by-name procedure.
McGraw-Hill Dictionary of Scientific & Technical Terms, 6E, Copyright © 2003 by The McGraw-Hill Companies, Inc.
thunk
(programming)/thuhnk/ 1. "A piece of coding which provides an
address", according to P. Z. Ingerman, who invented thunks in
1961 as a way of binding actual parameters to their formal
definitions in ALGOL 60 procedure calls. If a procedure
is called with an expression in the place of a formal parameter, the compiler generates a thunk which computes the
expression and leaves the address of the result in some
standard location.
2. The term was later generalised to mean an expression, frozen together with its environment (variable values), for later evaluation if and when needed (similar to a "closure"). The process of unfreezing these thunks is called "forcing".
3. A stubroutine, in an overlay programming environment, that loads and jumps to the correct overlay.
Compare trampoline.
There are a couple of onomatopoeic myths circulating about the origin of this term. The most common is that it is the sound made by data hitting the stack; another holds that the sound is that of the data hitting an accumulator. Yet another suggests that it is the sound of the expression being unfrozen at argument-evaluation time. In fact, according to the inventors, it was coined after they realised (in the wee hours after hours of discussion) that the type of an argument in ALGOL 60 could be figured out in advance with a little compile-time thought, simplifying the evaluation machinery. In other words, it had "already been thought of"; thus it was christened a "thunk", which is "the past tense of "think" at two in the morning".
4. (Microsoft Windows programming) universal thunk, generic thunk, flat thunk.
2. The term was later generalised to mean an expression, frozen together with its environment (variable values), for later evaluation if and when needed (similar to a "closure"). The process of unfreezing these thunks is called "forcing".
3. A stubroutine, in an overlay programming environment, that loads and jumps to the correct overlay.
Compare trampoline.
There are a couple of onomatopoeic myths circulating about the origin of this term. The most common is that it is the sound made by data hitting the stack; another holds that the sound is that of the data hitting an accumulator. Yet another suggests that it is the sound of the expression being unfrozen at argument-evaluation time. In fact, according to the inventors, it was coined after they realised (in the wee hours after hours of discussion) that the type of an argument in ALGOL 60 could be figured out in advance with a little compile-time thought, simplifying the evaluation machinery. In other words, it had "already been thought of"; thus it was christened a "thunk", which is "the past tense of "think" at two in the morning".
4. (Microsoft Windows programming) universal thunk, generic thunk, flat thunk.
This article is provided by FOLDOC - Free Online Dictionary of Computing (foldoc.org)