Sam

07 Apr 2013

For my capstone project I will be expanding upon my last, GraphLambda, which was a visualization of Lambda Calculus programs.

screenshot_mar31

The current state of the project is more a proof-of-concept than a usable tool. To bring it forward to achieve my original goals of providing an interactive visual programming environment for Lambda Calculus, I need to:

  1. Better layout of the nodes (topological sorting to clarify the order of operations)
  2. Create some tools for inserting, manipulating and deleting elements of the Lambda expressions
  3. Provide a clearer link between the text and pictorial representations (perhaps using some sort of synchronized highlighting)
  4. Provide a way to see the evaluation of the program in steps
  5. Enable collapsing of expression groups for readability

After achieving these goals, I plan to use the visualizer to record a video introduction to Lambda Calculus in this form. This paper from a researcher at FU Berlin gives a good overview of introductory concepts, and will probably form an outline for my video. I hope in the end to be able to offer this tool to the Computer Science department as a way to help their students understand this confusing topic.

Secondary features to be added as time permits:

  1. Investigate ways of coloring the objects to clarify relationships in the program structure
  2. Smooth animations for transitioning between views of the program (insertion/deletion, evaluation)
  3. Builtins of certain common elements (numbers, logical operations, named functions)