@hackage LambdaINet0.1.2.1

Graphical Interaction Net Evaluator for Optimal Evaluation

LambdaINet

LambdaINet implements an interaction net based optimal evaluator following Lambdascope [1], with an interactive graphical interface allowing user to view and directly manipulate interaction net.

[1] Vincent van Oostrom, Kees-Jan van de Looij, Marijn Zwitserlood, Lambdascope, Workshop on Algebra and Logic on Programming Systems (ALPS), Kyoto, April 10th 2004

CHANGES

  • Tue Sep 15 EDT 2009 - fix GUI on OS X; fix glitch when moving nodes. bump version to 0.1.2.

  • Mon Sep 14 EDT 2009 - fix the bug with app function, bump version to 0.1.1.

USAGE

After "cabal install", just type "LambdaINet" to start the application. Once it starts, press H for help, and ESC to quit. To understand all the operations in detail, you'll have to read the above mentioned paper by Oostrom et. al.

Currently there is no way to load input programs except modifying the source, Try src/Main.lhs if you want to change the start-up program, or any of the 1..9 preset programs.

At this moment, the object language supports lambda expression with recursion, tuples, and primitives such as numbers, strings and functions.

SIDE NOTE

The bulk of code was put together in two weeks when I was working on the leak problem for FRP in 2007. So it was really a rushed job with no guarantee of correctness, although I tried to stay faithful to the original paper as much as I could.

I only did some moderate clean-ups before releasing this application to public, and the code itself was sparingly documented when it was originally written. Some parts are probably still buggy, like the translation from net to term; other parts could use more improvements, like the node positioning and line layout algorithm. But I decide to release it anyway -- maybe some people some where will find it useful.

DEVELOPMENT

Please forward bug reports or feedbacks to me (Paul Liu at paul@thev.net), but don't hold your hope high on timely bug fixes.

Help is also needed to develop LambdaINet further, for example, it really needs a way to read lambda expressions from a separate file or standard input, which should be a simple feature to add, but alas! I don't have the time in the nearest future to do this kind of things myself.


Last Modified: Mon Sep 14 EDT 2009 by Paul Liu