程序设计语言实验室一篇论文被POPL'24接收
时间:2023年11月29日 14:55 来源:作者:
程序设计语言领域顶级会议POPL’24近日公布论文录用名单,程序设计语言研究室一篇论文《Fusing Direct Manipulations into Functional Programs》被该会议录用。
标题:Fusing Direct Manipulations into Functional Programs
作者:张星、谢睿峰、郭冠琛、何啸、昝涛、胡振江
摘要:
双向实时编程系统(BLP)使开发人员能够通过直接操作程序输出来修改程序,从而使更新后的程序能够产生被操作的输出。基于操作的双向实时编程系统是最先进的双向实时编程系统方法之一,它通过考虑开发者如何操作输出来捕捉开发者修改程序的意图。在这些 BLP 系统中,程序修改通常是为每次直接操作硬编码的,很难扩展。此外,为了将操作反映到源程序中,这些 BLP 系统会将修改后的输出追踪到相应的代码片段,并执行相应的代码转换。因此,这些系统要求直接操作用户了解源代码及其更改方式,从而使(对输出的)"直接"操作变成了 "间接 "操作。
在本文中,我们提出了一种新颖的基于操作的双向实时编程框架来解决这个问题,它可以自动将直接操作融合到源代码中,从而支持对代码不敏感的直接操作。首先,我们设计了一种简单但富有表达力的 delta 语言 DM,它能够表达输出值的常见直接操作。其次,我们提出了一种融合算法,该算法将直接操作传播到源代码函数式程序中,并尽可能将其应用到常量中;否则,该算法将操作嵌入程序的 "适当位置"。我们证明了融合算法的正确性,更新后的程序会执行融合算法以获得操作输出。为了证明 DM 的表达力和融合算法的有效性,我们实现了 FuseDM,一个支持基于图形用户界面的直接操作的 SVG 编辑器原型,并使用 FuseDM 从空白代码开始成功设计了 14 个基准示例。