Sydit: creating and applying a program transformation from an example

Na Meng, Miryung Kim, K. McKinley
{"title":"Sydit: creating and applying a program transformation from an example","authors":"Na Meng, Miryung Kim, K. McKinley","doi":"10.1145/2025113.2025185","DOIUrl":null,"url":null,"abstract":"Bug fixes and feature additions to large code bases often require systematic edits-similar, but not identical, coordinated changes to multiple places. This process is tedious and error-prone. Our prior work introduces a systematic editing approach that creates generalized edit scripts from exemplar edits and applies them to user-selected targets. This paper describes how the Sydit plug-in integrates our technology into the Eclipse integrated development environment. A programmer provides an example edit to Sydit that consists of an old and new version of a changed method. Based on this one example, Sydit generates a context-aware, abstract edit script. To make transformations applicable to similar but not identical methods, Sydit encodes control, data, and containment dependences and abstracts position, type, method, and variable names. Then the programmer selects target methods and Sydit customizes the edit script to each target and displays the results for the programmer to review and approve. Sydit thus automates much of the systematic editing process. To fully automate systematic editing, future tool enhancements should include automated selection of targets and testing of Sydit generated edits.","PeriodicalId":184518,"journal":{"name":"ESEC/FSE '11","volume":"32 1","pages":"0"},"PeriodicalIF":0.0000,"publicationDate":"2011-09-05","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":"37","resultStr":null,"platform":"Semanticscholar","paperid":null,"PeriodicalName":"ESEC/FSE '11","FirstCategoryId":"1085","ListUrlMain":"https://doi.org/10.1145/2025113.2025185","RegionNum":0,"RegionCategory":null,"ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"","JCRName":"","Score":null,"Total":0}
引用次数: 37

Abstract

Bug fixes and feature additions to large code bases often require systematic edits-similar, but not identical, coordinated changes to multiple places. This process is tedious and error-prone. Our prior work introduces a systematic editing approach that creates generalized edit scripts from exemplar edits and applies them to user-selected targets. This paper describes how the Sydit plug-in integrates our technology into the Eclipse integrated development environment. A programmer provides an example edit to Sydit that consists of an old and new version of a changed method. Based on this one example, Sydit generates a context-aware, abstract edit script. To make transformations applicable to similar but not identical methods, Sydit encodes control, data, and containment dependences and abstracts position, type, method, and variable names. Then the programmer selects target methods and Sydit customizes the edit script to each target and displays the results for the programmer to review and approve. Sydit thus automates much of the systematic editing process. To fully automate systematic editing, future tool enhancements should include automated selection of targets and testing of Sydit generated edits.
查看原文
分享 分享
微信好友 朋友圈 QQ好友 复制链接
本刊更多论文
Sydit:从一个例子中创建和应用程序转换
对大型代码库的Bug修复和特性添加通常需要系统编辑——对多个地方进行类似但不完全相同的协调更改。这个过程冗长且容易出错。我们之前的工作介绍了一种系统的编辑方法,从范例编辑中创建通用的编辑脚本,并将它们应用于用户选择的目标。本文描述了Sydit插件如何将我们的技术集成到Eclipse集成开发环境中。程序员向Sydit提供一个示例编辑,该示例编辑由已更改方法的新旧版本组成。基于这个示例,Sydit生成一个上下文感知的抽象编辑脚本。为了使转换适用于相似但不相同的方法,Sydit对控制、数据和包含依赖项进行编码,并对位置、类型、方法和变量名进行抽象。然后程序员选择目标方法,Sydit为每个目标定制编辑脚本,并显示结果供程序员审查和批准。因此,Sydit自动化了许多系统化的编辑过程。为了完全自动化系统编辑,未来的工具增强应该包括目标的自动选择和Sydit生成编辑的测试。
本文章由计算机程序翻译,如有差异,请以英文原文为准。
求助全文
约1分钟内获得全文 去求助
来源期刊
自引率
0.00%
发文量
0
期刊最新文献
Semistructured merge: rethinking merge in revision control systems The 4th international workshop on social software engineering (SSE'11) Don't touch my code!: examining the effects of ownership on software quality SCORE: a scalable concolic testing tool for reliable embedded software Modeling the HTML DOM and browser API in static analysis of JavaScript web applications
×
引用
GB/T 7714-2015
复制
MLA
复制
APA
复制
导出至
BibTeX EndNote RefMan NoteFirst NoteExpress
×
×
提示
您的信息不完整,为了账户安全,请先补充。
现在去补充
×
提示
您因"违规操作"
具体请查看互助需知
我知道了
×
提示
现在去查看 取消
×
提示
确定
0
微信
客服QQ
Book学术公众号 扫码关注我们
反馈
×
意见反馈
请填写您的意见或建议
请填写您的手机或邮箱
已复制链接
已复制链接
快去分享给好友吧!
我知道了
×
扫码分享
扫码分享
Book学术官方微信
Book学术文献互助
Book学术文献互助群
群 号:481959085
Book学术
文献互助 智能选刊 最新文献 互助须知 联系我们:info@booksci.cn
Book学术提供免费学术资源搜索服务,方便国内外学者检索中英文文献。致力于提供最便捷和优质的服务体验。
Copyright © 2023 Book学术 All rights reserved.
ghs 京公网安备 11010802042870号 京ICP备2023020795号-1