Skip to content
forked from luqui/vatican

A lazily specializing virtual machine for purely functional programs

Notifications You must be signed in to change notification settings

jmcarthur/vatican

 
 

Repository files navigation

This is a codebase for experimenting with lazy specializing interpretation
strategies.  Currently implemented are:

    * Thyer's complete laziness semantics (sans memoization)
    * Bottom up beta substitution

To try it out, use measure.pl, like so:

    % perl measure.pl bubs 5

This runs the incredibly simple program 3*3 using the bubs (bottom up beta
substitution) interpreter at levels of interpretation from 0 to 5 (it is very
likely you will not be patient enough for this to finish).  So, for example, at
the 3rd level, it is running an interpreter running an interpreter running an
interpreter running 3*3.  

The other options are "thyer" and "ref".  "ref" is a simple embedding of HOAS
into Haskell, running (asymptotically) at the speed GHC would run this code.

Here you can see thyer kick the pants off the other two.

About

A lazily specializing virtual machine for purely functional programs

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Haskell 97.7%
  • Perl 2.3%