Skip to content

jlongster/outlet-machine

Repository files navigation

This is a register-based virtual machine that runs a subset of Lisp.
It supports the basic forms like `lambda`, `define`, `set!`, `if`,
etc.

Needs Outlet to run: https://github.com/jlongster/outlet

Code is compiled to a special assembly language that the virtual
machine assembles and runs.

For example:

    (define a 3)

is compiled to:

    ((assign val (const 3))
     (perform
      (op define-variable!)
      (const a)
      (reg val)
      (reg env))
     (assign val (const ok)))

This is an experiment to see if this is capable of running Outlet
(https://github.com/jlongster/outlet) code at acceptable speeds. If
so, this has great potential as a debugger.

About

A register-based virtual machine for a basic Lisp

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published