For my capstone project I will be expanding upon my last, GraphLambda, which was a visualization of Lambda Calculus programs.
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:
- Better layout of the nodes (topological sorting to clarify the order of operations)
- Create some tools for inserting, manipulating and deleting elements of the Lambda expressions
- Provide a clearer link between the text and pictorial representations (perhaps using some sort of synchronized highlighting)
- Provide a way to see the evaluation of the program in steps
- 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:
- Investigate ways of coloring the objects to clarify relationships in the program structure
- Smooth animations for transitioning between views of the program (insertion/deletion, evaluation)
- Builtins of certain common elements (numbers, logical operations, named functions)