John C. Reynolds: Definitional Interpreters for Higher-Order Programming Languages. Higher-Order and Symbolic Computation, 11(4), 1998, pages 363-397.
This paper was mentioned here a few times but we never did discuss its impact. Why not now?
If you haven't read the paper, but studied programming languages, perhaps that easiest way to describe the paper is to say that it is the origin of the EOPL approach: Language understanding by building (applicative) interpreters. Closures, continutations (and CPS), defunctionalization - it's all there.
From a historical perspective it is worth spending a few seconds to ponder the conclusion of Reynold's Definitional Interpreters Revisited (Higher-Order and Symbolic Computation, 11(4), 1998, pages 355-361):
Perhaps the real mystery about these concepts is that they appear, with easily recognizable similarity in such a variety of settings: with and without types, in denotational and operational semantics, in interpreters, and even in the transformation of arbitrary programs.
Posted to history by Ehud Lamm on 9/30/03; 1:36:36 AM