Skip to content

dcclogin/SereneAzure

Repository files navigation

Prototypes

Some programs that have great value for me (maybe not for you). Sometimes they can be a bit messy, so I will occasionally do some detective work on them and update!

CPSer.rkt

  • Transforming a program into CPS.

ANFer.rkt

  • Transforming a program into A-Normal Form.

interp-k0.rkt

  • A simple CPStyle evaluator for a subset of Scheme.

interp-!.rkt

  • A interpreter of a petite language with explicit references.

interp-machine.rkt

  • A simple C-style interpreter of λ-Calculus with some primitives.
  • interpreter -> CPSed -> registerized -> trampolined.

UTLC.rkt

  • Untyped λ-Calculus (standard reduction) written in #lang typed/racket.
  • Call-By-Name with old fashion substitution.

cc.rkt

  • A naive implementation of CC Machine described in PLLC.

expose-basic-block.rkt

  • One of the most interesting compiler pass from P523.

reify.rkt

  • Simple implementation of Normalization by Evaluation.
  • Similar to Olivier Danvy's Type Directed Partial Evaluation.

notes

Some tutorial notes you may find interesting:

  • From an Interpreter to a CPSer.
  • How to derive Y combinator?