ManipML: Towards Bimodal Tangible Functional Programming
Can live programming be augmented with direct manipulation on the live program values? The programmer might either text edit their code or use their mouse to manipulate live program values to modify their program. While such bimodal programming environments have been demonstrated for graphical domains, how to offer such a system for more generic programming remains an open question.
To explore this question, we take inspiration from Conal Elliot’s tangible functional programming system Eros, in which the user manipulates function values on a canvas to create new values by composition. While not bimodal, Eros demonstrated that functional programming might enable a non-linear editing style in which programs are constructed out of order rather than top-down.
To take initial steps towards non-linear tangible editing in a bimodal interface, we present ManipML, a text and direct manipulation interface for building simple OCaml programs. Running alongside a traditional text editor, ManipML displays a manipulable skeleton of the program structure, along with runtime values from an example execution. Drag-and-drop interactions enable insertion and replacement of code. We demonstrate ManipML’s workflow by constructing a function to perform natural number addition.
Tue 17 NovDisplayed time zone: Central Time (US & Canada) change
13:00 - 14:20
|Sketchable Interaction - End-User Customization via Interactive Regions|
|Data Theater: A Live Programming Environment for Prototyping Data-Driven Explorable Explanations|
|ManipML: Towards Bimodal Tangible Functional Programming|
|Wrap-up Discussion and Feedback|