中文

编辑事务:用于实时编程中受控更新的动态作用域变更集

软件工程 2017-04-05 v2 编程语言

摘要

实时编程环境使程序员能够编辑运行中的程序,并对每个单独的更改获得即时反馈。程序员重视实时性质量,因为它有助于以小步进行工作,并在保持每次编辑与其在运行时表现之间直接连接的印象的同时,连续添加或纠正小功能。这种即时性可能与执行一组中间步骤(如重构)而不在每个单独编辑后立即生效的愿望相冲突。当不完整的小规模更改序列很容易破坏运行中的程序时,这变得很重要。最先进的解决方案侧重于事后恢复机制,例如调试或版本控制。相反,我们提出了一种主动方法:对程序的多个单独更改被收集在一个编辑事务中,如果 deemed 完整,则可以使其生效。激活后,合并的步骤将一起变得可见。编辑事务具有动态作用域能力,允许在扩展到运行中的应用程序之前隔离测试一组更改。这使得实时编程工作流能够完全控制更改粒度、对测试的即时反馈、对运行应用程序的延迟效果以及粗粒度的撤销。我们在 Squeak/Smalltalk 中提出了编辑事务以及感知编辑事务的工具的实现。我们通过在有和没有新工具支持的情况下进行案例研究来评估此实现,比较了在运行模拟中实现新功能的编程活动、错误和弯路。我们得出结论,使用编辑事务的工作流有可能增加对更改的信心,减少运行时错误的可能性,并最终使实时编程更加可预测和引人入胜。

关键词

引用

@article{arxiv.1703.10862,
  title  = {Edit Transactions: Dynamically Scoped Change Sets for Controlled Updates in Live Programming},
  author = {Toni Mattis and Patrick Rein and Robert Hirschfeld},
  journal= {arXiv preprint arXiv:1703.10862},
  year   = {2017}
}