TL;DR
Manipulating live program values on a 2D canvas in Maniposynth offers a novel, concrete approach to functional programming, enabling non-linear workflows and direct interaction with program results.
Contribution
Introduces Maniposynth, a system that transforms functional programming into a non-linear, graphical workflow with live value manipulation and program synthesis capabilities.
Findings
38 programs created using Maniposynth from a data structures course
Two professional OCaml developers successfully implemented selected programs
Demonstrates feasibility of a non-linear, concrete programming environment
Abstract
Traditionally, writing code is a non-graphical, abstract, and linear process. Not everyone is comfortable with this way of thinking at all times. Can programming be transformed into a graphical, concrete, non-linear activity? While nodes-and-wires and blocks-based programming environments do leverage graphical direct manipulation, users perform their manipulations on abstract syntax tree elements, which are still abstract. Is it possible to be more concrete - could users instead directly manipulate live program values to create their program? We present a system, Maniposynth, that reimagines functional programming as a non-linear workflow where program expressions are spread on a 2D canvas. The live results of those expressions are continuously displayed and available for direct manipulation. The non-linear canvas liberates users to work out-of-order, and the live values can be…
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Code & Models
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
