ANNOUNCE: LambdaINet-0.1.0, Graphical Interaction Net Evaluator for Optimal Evaluation

It's available on Hackage DB at http://hackage.haskell.org/package/LambdaINet Thanks to Kim-Ee Yeoh for pushing me into releasing this piece of code I wrote two years ago. I'll just quote the README from the source tarball below. 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 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 at thev dot 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. -- Regards, Paul Liu Yale Haskell Group http://www.haskell.org/yale

On Mon, Sep 14, 2009 at 7:36 AM, Paul L
It's available on Hackage DB at http://hackage.haskell.org/package/LambdaINet
Nice! Screenshots anywhere? Bas

I just bumped the version to 0.1.1 that fixes an embarrassing bug,
i.e., the first example shown on the screen was actually wrong.
I took a screenshot of the interaction net showing (church 2) f x,
i.e., (\f x -> f (f x)) f x together with on-screen help messages. It
is the first example right after you start the LambdaINet application,
and erase redundant nodes, relayout, and auto zoom (key sequence E, L,
Space"). It will reduce to f (f x) if you hit R key, or if you want to
see the step by step outermost reduction, just keep hitting O key.
The picture is here http://www.thev.net/download/church_2_f_x-with-helpmsg.jpg
Pressing 1 to 9 will show a more complicated example that actually
demonstrates the power of optimal evaluation: opt n = (church n)
(church 2) i i. Standard call-by-need takes 37 beta reductions to
evaluate opt 4, but optimal only needs 15.
On 9/14/09, Bas van Dijk
On Mon, Sep 14, 2009 at 7:36 AM, Paul L
wrote: It's available on Hackage DB at http://hackage.haskell.org/package/LambdaINet
Nice! Screenshots anywhere?
Bas
-- Regards, Paul Liu Yale Haskell Group http://www.haskell.org/yale

Now it's at version 0.1.2 with the EnableGUI fix for Mac OS X.
On 9/14/09, Paul L
I just bumped the version to 0.1.1 that fixes an embarrassing bug, i.e., the first example shown on the screen was actually wrong.
I took a screenshot of the interaction net showing (church 2) f x, i.e., (\f x -> f (f x)) f x together with on-screen help messages. It is the first example right after you start the LambdaINet application, and erase redundant nodes, relayout, and auto zoom (key sequence E, L, Space"). It will reduce to f (f x) if you hit R key, or if you want to see the step by step outermost reduction, just keep hitting O key.
The picture is here http://www.thev.net/download/church_2_f_x-with-helpmsg.jpg
Pressing 1 to 9 will show a more complicated example that actually demonstrates the power of optimal evaluation: opt n = (church n) (church 2) i i. Standard call-by-need takes 37 beta reductions to evaluate opt 4, but optimal only needs 15.
On 9/14/09, Bas van Dijk
wrote: On Mon, Sep 14, 2009 at 7:36 AM, Paul L
wrote: It's available on Hackage DB at http://hackage.haskell.org/package/LambdaINet
Nice! Screenshots anywhere?
Bas
-- Regards, Paul Liu
Yale Haskell Group http://www.haskell.org/yale
-- Regards, Paul Liu Yale Haskell Group http://www.haskell.org/yale
participants (2)
-
Bas van Dijk
-
Paul L