2014-04-26 10:52:28 -04:00
|
|
|
thunk
|
|
|
|
|
2014-04-26 11:54:15 -04:00
|
|
|
/thuhnk/ , n. 1. [obs.] 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. Later
|
|
|
|
generalized into: an expression, frozen together with its environment, for
|
|
|
|
later evaluation if and when needed (similar to what in techspeak is called
|
|
|
|
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. 4. Microsoft and IBM have both
|
|
|
|
defined, in their Intel-based systems, a 16-bit environment (with
|
|
|
|
bletcherous segment registers and 64K address limits) and a 32-bit
|
|
|
|
environment (with flat addressing and semi-real memory management). The two
|
|
|
|
environments can both be running on the same computer and OS (thanks to what
|
|
|
|
is called, in the Microsoft world, WOW which stands for Windows On Windows).
|
|
|
|
MS and IBM have both decided that the process of getting from 16- to 32-bit
|
|
|
|
and vice versa is called a thunk ; for Windows 95, there is even a tool
|
|
|
|
THUNK.EXE called a thunk compiler. 5. A person or activity scheduled in a
|
|
|
|
thunklike manner. It occurred to me the other day that I am rather
|
|
|
|
accurately modeled by a thunk I frequently need to be forced to completion.:
|
|
|
|
paraphrased from a plan file. Historical note: 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 realized (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.
|
|
|
|
|