Thirty-five years ago, thunks were used to simulate call-by-name
under call-by-value in Algol
60. Twenty years ago, Plotkin presented continuation-based simulations
of call-by-name under call-by-value and vice versa in the λ-calculus.
We
connect all three of these classical
simulations by factorizing the continuation-based call-by-name simulation
[Cscr ]n with a thunk-based call-by-name simulation
[Tscr ] followed by the continuation-based call-by-value simulation
[Cscr ]v, extended to thunks.
formula here
We show that [Tscr ] actually satisfies all of Plotkin's
correctness criteria for [Cscr ]n (i.e. his
Indifference, Simulation and Translation theorems).
Furthermore, most of the correctness theorems for [Cscr ]n
can now be seen as simple corollaries of the corresponding theorems for
[Cscr ]v and [Tscr ].