We Have GraalVM At Home
Basic concrete syntax.
Wired-up parser and errors.
Fixes lifetime error.


browse  log 



You can also use your local clone with git send-email.


We Have GraalVM At Home

This site contains notes on my term project for CSCI8980: Functional Algorithm Design and Calculation. (Pronounced "wig-vuh," because I take great joy in creating bad names.)

The central promise of GraalVM is that one can get a quite good compiler from a much simpler interpreter. The paper "Calculating Correct Compilers" (Journal of Functional Programming, Volume 25, 2015), by Patrick Bahr and Graham Hutton, seems to be a great first step towards replicating this "at home."

Also relevant as background reading/watching for the JIT side:

My project idea is basically:

  1. Take an evaluator for an object language, written in a metalanguage that's easy to reason about (like in CSCI2041)
  2. From the evaluator, calculate a compiler for a bytecode language, and an interpreter for the bytecode (like in "Calculating Correct Compilers")
  3. Translate the interpreter to a low-level IR (this is just compiling the metalanguage)
  4. Run the IR in an optimizing JIT, with polymorphic inline caches for conditionals and indirect calls (like in Chevalier-Boisvert's Lazy Basic Block Versioning work)

The code portions of this repository are licensed under the GPL version 3, or (at your option) any later version.