Bidirectional evaluation with direct manipulation

Bidirectional evaluation with direct manipulation
复制标题

直接操作的双向评估

DOI:
10.1145/3276497
复制
发表时间:
2018
影响因子:
--
通讯作者:
Chugh, Ravi
Chugh, Ravi
中科院分区:
--
文献类型:
--
作者:
Mayer, Mikaël;Kuncak, Viktor;Chugh, Ravi

文献摘要

参考文献

被引文献

相似文献

我们提出了一种用于全功能函数式程序设计语言的评估更新(或简称更新)算法,该算法根据输出更改来综合程序更改。直观地说,更新算法追溯原始评估的步骤,根据需要重写程序,以协调原始输出值和更新输出值之间的差异。此外,我们的方法允许专家用户定义定制的镜头,用更高级的或特定于领域的程序更新来增强更新算法。为了展示评估更新的实用性,我们在Sketch-n-Sketch中实现了该算法,这是一个用于生成HTML文档的新型直接操作编程系统。在Sketch-n-Sketch中,用户编写一个ML风格的函数程序来生成HTML输出。当用户使用图形用户界面直接操作输出时,更新算法会协调更改。我们通过创作总共约1400行代码的10个例子来评估Sketch-n-Sketch中的双向评估。这些示例演示了如何在Sketch-n-Sketch中以交互方式开发和编辑各种HTML文档和应用程序,从而减少了传统编程环境中乏味的编辑-运行-查看周期。
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 a 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.
DOI: --
发表时间: 2007
期刊: ACM SIGPLAN Workshop on Partial Evaluation and Program Manipulation
影响因子: --
作者:
Dongxi Liu;Zhenjiang Hu;M. Takeichi
通讯作者: M. Takeichi
幻灯片:功能演示
DOI: --
发表时间: 2004
期刊: ACM SIGPLAN International Conference on Functional Programming
影响因子: --
作者:
R. Findler;M. Flatt
通讯作者: M. Flatt
严格的双向类型检查
DOI: --
发表时间: 2005
期刊: ACM SIGPLAN International Workshop on Types In Languages Design And Implementation
影响因子: --
作者:
A. Chlipala;Leaf Petersen;R. Harper
通讯作者: R. Harper
DOI: --
发表时间: 2006
期刊: arXiv.org
影响因子: --
作者:
T. Schreiber;M. Penrose;J. Yukich
通讯作者: J. Yukich
DOI: 10.1145/3158089
发表时间: 2017
影响因子: --
作者:
Anders Miltner;Kathleen Fisher;B. Pierce;D. Walker;Steve Zdancewic
通讯作者: Steve Zdancewic