Lambda Animator

Launch in sandbox mode with Java Web Start or in an Applet Launch in trusted mode with Java Web Start or in an Applet



Lambda Animator is a tool for demonstrating and experimenting with alternative reduction strategies in the lambda calculus. Eager languages reduce arguments before function application. Lazy languages reduce arguments, if needed, after function application.

Reductions can also be performed within function bodies. Performing reductions within functions can have a specializing effect. If a function is applied more than once then any reductions performed within the function will be performed once before the function body is copied instead of multiple times after. These specializing reductions can also be performed eagerly or lazily. The specializing effect is sufficient to remove interpretive overhead. Usage Lambda Animator can be launched in two ways:

Run in sandbox mode if you don't want to permit access to resources on your computer. You will be able to step through the existing examples, but you will not be able instantiate new graphs.

Run in trusted mode if you have Graphviz installed on your computer and you want to permit Lambda Animator to use it. This will enable you to change the reduction strategy and try your own programs.

javaws http://thyer.name/lambda-animator/sandbox.jnlp

javaws http://thyer.name/lambda-animator/trusted.jnlp

Applet in sandbox mode.

Applet in trusted mode.

sudo apt-get install sun-java5-bin sun-java5-plugin

sudo apt-get install graphviz

The JAR file contains the source code so you can compile it on your own computer if you want.

Lambda Animator uses resources on this website. These include further instructions and examples. Screen shots These screen shots demonstrates the power function being specialized with the value 3 . The resulting cube function takes 4 beta and 17 delta reduction steps the first time it is applied, and then only one beta and three delta reduction steps on subsequent uses. To see the intermediate steps, and to see more complex examples, launch the sandbox version. To try your own programs run the trusted version.

These screen shots show stream fusion of a three stage pipeline in 22 beta-reductions.