Wed 7 Nov 2018 15:30 - 15:52 at Studio 1 - Language Design 2 Chair(s): Jonathan Aldrich

We present an evaluation update (or simply, update) algorithm for a full-featured functional programming language, which synthesizes program changes based on output changes. Intuitively, the update algorithm retraces the steps of the original evaluation, rewriting the program as needed to reconcile differences between the original and updated output values. Our approach, furthermore, allows expert users to define custom lenses that augment the update algorithm with more advanced or domain-specific program updates.

To demonstrate the utility of evaluation update, we implement the algorithm in Sketch-n-Sketch, a novel direct manipulation programming system for generating HTML documents. In Sketch-n-Sketch, the user writes an ML-style functional program to generate HTML output. When the user directly manipulates the output using the graphical user interface, the update algorithm reconciles the changes. We evaluate bidirectional evaluation in Sketch-n-Sketch by authoring ten examples comprising approximately 1400 lines of code in total. These examples demonstrate how a variety of HTML documents and applications can be developed and edited interactively in Sketch-n-Sketch, mitigating the tedious edit-run-view cycle in traditional programming environments. Thus, we believe these techniques serve as a foundation for a variety of systems to allow users to combine programming with direct manipulation.

Wed 7 Nov

Displayed time zone: Guadalajara, Mexico City, Monterrey change

15:30 - 17:00
Language Design 2OOPSLA at Studio 1
Chair(s): Jonathan Aldrich Carnegie Mellon University
15:30
22m
Talk
Bidirectional Evaluation with Direct Manipulation
OOPSLA
Mikaël Mayer EPFL, Switzerland, Viktor Kunčak EPFL, Switzerland, Ravi Chugh University of Chicago
15:52
22m
Talk
BioScript: Programming Safe Chemistry on Laboratories-on-a-ChipDistinguished Paper Award
OOPSLA
Jason Ott University of California, Riverside, Tyson Loveless University of California, Riverside, Chris Curtis University of California, Riverside, Mohsen Lesani University of California, Riverside, Philip Brisk University of California, Riverside
16:15
22m
Talk
Distributed System Development with ScalaLoci
OOPSLA
Pascal Weisenburger Technische Universität Darmstadt, Mirko Köhler , Guido Salvaneschi TU Darmstadt
16:37
22m
Talk
Concurrency-aware Object-oriented Programming with Roles
OOPSLA
Michael Faes ETH Zurich, Thomas Gross ETH Zurich
Link to publication DOI