A refactoring must preserve the program's functionality. However, not all refactorings are correct. Preservation of the functionality must be checked. Since programs are rarely formally specified, we use the original program as functional specification and check whether the original and refactored program are functionally equivalent. More concretely, our PEQcheck technique follows a common approach and reduces equivalence checking to program verification. To increase efficiency, PEQcheck generates several verification tasks, namely one per refactored code segment and not one per function as typically done by prior work. Additionally, PEQcheck takes the context of the segments into account. For example, only modified, live variables need to be equivalent and read-only variables can be shared between original and refactored code segments. We proved soundness of our PEQcheck technique and implemented it in a prototype tool. Our evaluation shows that the localized checking of PEQcheck can indeed be beneficial.


翻译:重设必须保存程序功能。 但是, 并非所有重设都正确 。 保存功能必须检查 。 由于程序很少正式指定, 我们使用原始程序作为功能规格, 并检查原始和重设程序是否等同功能 。 更具体地说, 我们的 PEQ check 技术遵循共同的方法, 并减少对等性检查来进行程序验证 。 为了提高效率, PEQ check 生成了多个核查任务, 即每个重设代码部分一个, 而不是以往工作通常完成的每个功能一个 。 此外, PEQ check 将部分的上下文考虑在内 。 例如, 仅修改过的、 活变量需要等同和只读的变量才能在原始和重设代码部分之间共享 。 我们证明了我们的 PEQ check 技术的正确性, 并在原型工具中应用了它。 我们的评估显示, 对 PEQ check 进行局部检查确实是有益的 。

0
下载
关闭预览

相关内容

专知会员服务
123+阅读 · 2020年9月8日
神经常微分方程教程,50页ppt,A brief tutorial on Neural ODEs
专知会员服务
70+阅读 · 2020年8月2日
【深度学习视频分析/多模态学习资源大列表】
专知会员服务
91+阅读 · 2019年10月16日
强化学习最新教程,17页pdf
专知会员服务
171+阅读 · 2019年10月11日
【哈佛大学商学院课程Fall 2019】机器学习可解释性
专知会员服务
100+阅读 · 2019年10月9日
Call for Participation: Shared Tasks in NLPCC 2019
中国计算机学会
5+阅读 · 2019年3月22日
逆强化学习-学习人先验的动机
CreateAMind
15+阅读 · 2019年1月18日
Unsupervised Learning via Meta-Learning
CreateAMind
41+阅读 · 2019年1月3日
A Technical Overview of AI & ML in 2018 & Trends for 2019
待字闺中
16+阅读 · 2018年12月24日
【干货】2019年国际学术会议资讯 (含截稿日期)
中国自动化学会
9+阅读 · 2018年11月5日
disentangled-representation-papers
CreateAMind
26+阅读 · 2018年9月12日
Hierarchical Disentangled Representations
CreateAMind
4+阅读 · 2018年4月15日
【推荐】自然语言处理(NLP)指南
机器学习研究会
35+阅读 · 2017年11月17日
Arxiv
0+阅读 · 2021年3月15日
Arxiv
6+阅读 · 2017年12月7日
VIP会员
相关资讯
Call for Participation: Shared Tasks in NLPCC 2019
中国计算机学会
5+阅读 · 2019年3月22日
逆强化学习-学习人先验的动机
CreateAMind
15+阅读 · 2019年1月18日
Unsupervised Learning via Meta-Learning
CreateAMind
41+阅读 · 2019年1月3日
A Technical Overview of AI & ML in 2018 & Trends for 2019
待字闺中
16+阅读 · 2018年12月24日
【干货】2019年国际学术会议资讯 (含截稿日期)
中国自动化学会
9+阅读 · 2018年11月5日
disentangled-representation-papers
CreateAMind
26+阅读 · 2018年9月12日
Hierarchical Disentangled Representations
CreateAMind
4+阅读 · 2018年4月15日
【推荐】自然语言处理(NLP)指南
机器学习研究会
35+阅读 · 2017年11月17日
Top
微信扫码咨询专知VIP会员