Skip to content
vic

namin/pink

Collapsing Towers of Interpreters (in Scheme)

namin/pink.json
{
"createdAt": "2017-07-20T20:16:17Z",
"defaultBranch": "master",
"description": "Collapsing Towers of Interpreters (in Scheme)",
"fullName": "namin/pink",
"homepage": "",
"language": "Scheme",
"name": "pink",
"pushedAt": "2018-08-22T19:22:08Z",
"stargazersCount": 59,
"topics": [
"collapsing-towers",
"generative-programming",
"metaprogramming",
"scheme",
"towers"
],
"updatedAt": "2025-11-19T01:41:56Z",
"url": "https://github.com/namin/pink"
}

Pink in Scheme (Collapsing Towers of Interpreters)

Section titled “Pink in Scheme (Collapsing Towers of Interpreters)”
  • [base.scm]!(base.scm) defines the multi-level core language λ↑↓ as a definitional interpreter in Scheme.
  • [pink.scm]!(pink.scm) defines the meta-circular stage-parametric interpreter for Pink on top of the base.
  • [matcher.scm]!(matcher.scm) defines a matcher as an example on top of Pink.
  • [mk.scm]!(mk.scm) defines a µKanren as an example on top of Pink.

Each code file .scm above has a companion -tests.scm, which can be run with Chez Scheme. For example, chez pink-tests.scm runs all the Pink-related tests.