---
title: "Definitional Interpreters Revisited"
authors:
  - "John C. Reynolds"
year: 1998
venue: "Higher-Order and Symbolic Computation"
arxiv: null
doi: "10.1023/A:1010075320953"
source: "https://doi.org/10.1023/A:1010075320953"
topics:
  - definitional-interpreters
  - defunctionalization
  - reynolds
  - history
seed_rank: 642
seed_batch: "perfects-pl-2026-08-13"
reviewed: "2026-08-13"
pool: "languages"
relevance_score: 10
lineage: programming-language-foundations
cites:
  - title: "Definitional Interpreters for Higher-Order Programming Languages"
    url: "https://doi.org/10.1145/800194.805852"
    year: 1972
    arxiv: null
    doi: "10.1145/800194.805852"
see:
  - "630-definitional-interpreters-for-higher-order-programming-langu"
---

# Definitional Interpreters Revisited

## One-sentence takeaway

Reynolds retells the 1972 essay in 1990s vocabulary, making explicit that CPS and defunctionalization were the two systematic transforms hiding in the original interpreters.

## Why it matters here

Best secondary key to Reynolds 1972 — what “definitional” meant, why the defining language’s evaluation order leaks, and how that line feeds Danvy’s later PE/CPS/defunctionalization work (643) and continuation compilers (666).

## Key ideas

- Historical framing of continuation-passing style as a way to pin down evaluation order in the metalanguage.
- Defunctionalization presented as the inverse of introducing function values — first-order closures plus an apply.
- Clarifies what the 1972 transformations were doing for a generation that had since named CPS and PE.
- *HOSC* 11(4), 1998, pp. 355–361.

## Caveats

## Links

- DOI: [10.1023/A:1010075320953](https://doi.org/10.1023/A:1010075320953)
