Note: Work on Leisure has been moved to Github. If you have cloned it from tinyconcepts.com or elsewhere, please sync with the Github repository (and verify with that repository that there is no additional forwarding information :) ).
Although the rest of this may be out of date, by now, this repository should still work as it had.
Lambda Calculator Fossil repository
By Bill Burdick (bill dot burdick at gmail dot com)(BTW, Fossil is like Git) Notes
This started out as maybe a little more than three implementations of untyped Lambda Calculus in JavaScript:
- A compiler
- A reducer that shows the steps it takes to reduce an expression
- A virtual machine (buggy)
- An LLVM code generator
The virtual machine is still a bit buggy :).
The current plans are to make this into a Lambda Calculus-based language, called Lazp that supports metaprogramming (eval, parser macros)
Work in progress...- get the old LC working in node.js (done)
- enhance the language to use the new LC-based AST
- debug the bytecode virtual machine? Not sure if it's worth keeping.
- provide a compiler that generates C code
- provide a compiler that generates LLVM code, directly
Demo and Notes
Here are some overview slides and here is a video of the talkHere is the calculator, which runs out of your browser.
Clicking the "Run" button compiles all of the LC code to JavaScript and runs the selected one. The "Reduce" button shows the intermediate alpha, beta, and eta reductions required to reduce an LC expression.
There is a small version of Space Invaders, written in Lambda Calculus, here: http://tinyconcepts.com/invaders.html. It's also available in this repository, but the image links work better from a regular web server. It's not finished, yet :)
Resources