一种将程序特性自动映射到代码的形式化方法

J. Deprez, Arun Lakhotia
{"title":"一种将程序特性自动映射到代码的形式化方法","authors":"J. Deprez, Arun Lakhotia","doi":"10.1109/WPC.2000.852481","DOIUrl":null,"url":null,"abstract":"How does one locate the segments of code that implement a particular feature? N. Wilde and M.C. Scully (WS) (1995) pioneered the use of execution traces to map program features to code. Using their technique to locate the implementation of a particular feature, a program is executed with two sets of inputs; one set invokes the feature of interest and the other set does not. Operations such as set-difference and set-intersection, amongst others, are then applied on the execution traces to obtain answers for various questions related to a feature and its implementation. Previous researchers have automated the tasks of computing the execution traces and performing operations on the execution traces. We present a formalism to automate the most time-consuming aspect of this approach for locating code, namely, the partitioning of the input sets into invoking and non-invoking sets. A collection of input sets is partitioned using feature syntax, a grammar of the program's input annotated with feature names. An input set is placed in the invoking set if and only if its parse tree is annotated with that feature. WS' technique solely applies set operations on the execution traces of inputs. In our technique, we also apply the set operations among the set of features used by these inputs. By doing so, we can precisely determine the features whose implementation is identified when applying the operations on the execution traces.","PeriodicalId":448149,"journal":{"name":"Proceedings IWPC 2000. 8th International Workshop on Program Comprehension","volume":"198200 1","pages":"0"},"PeriodicalIF":0.0000,"publicationDate":"2000-06-10","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":"28","resultStr":"{\"title\":\"A formalism to automate mapping from program features to code\",\"authors\":\"J. Deprez, Arun Lakhotia\",\"doi\":\"10.1109/WPC.2000.852481\",\"DOIUrl\":null,\"url\":null,\"abstract\":\"How does one locate the segments of code that implement a particular feature? N. Wilde and M.C. Scully (WS) (1995) pioneered the use of execution traces to map program features to code. Using their technique to locate the implementation of a particular feature, a program is executed with two sets of inputs; one set invokes the feature of interest and the other set does not. Operations such as set-difference and set-intersection, amongst others, are then applied on the execution traces to obtain answers for various questions related to a feature and its implementation. Previous researchers have automated the tasks of computing the execution traces and performing operations on the execution traces. We present a formalism to automate the most time-consuming aspect of this approach for locating code, namely, the partitioning of the input sets into invoking and non-invoking sets. A collection of input sets is partitioned using feature syntax, a grammar of the program's input annotated with feature names. An input set is placed in the invoking set if and only if its parse tree is annotated with that feature. WS' technique solely applies set operations on the execution traces of inputs. In our technique, we also apply the set operations among the set of features used by these inputs. By doing so, we can precisely determine the features whose implementation is identified when applying the operations on the execution traces.\",\"PeriodicalId\":448149,\"journal\":{\"name\":\"Proceedings IWPC 2000. 8th International Workshop on Program Comprehension\",\"volume\":\"198200 1\",\"pages\":\"0\"},\"PeriodicalIF\":0.0000,\"publicationDate\":\"2000-06-10\",\"publicationTypes\":\"Journal Article\",\"fieldsOfStudy\":null,\"isOpenAccess\":false,\"openAccessPdf\":\"\",\"citationCount\":\"28\",\"resultStr\":null,\"platform\":\"Semanticscholar\",\"paperid\":null,\"PeriodicalName\":\"Proceedings IWPC 2000. 8th International Workshop on Program Comprehension\",\"FirstCategoryId\":\"1085\",\"ListUrlMain\":\"https://doi.org/10.1109/WPC.2000.852481\",\"RegionNum\":0,\"RegionCategory\":null,\"ArticlePicture\":[],\"TitleCN\":null,\"AbstractTextCN\":null,\"PMCID\":null,\"EPubDate\":\"\",\"PubModel\":\"\",\"JCR\":\"\",\"JCRName\":\"\",\"Score\":null,\"Total\":0}","platform":"Semanticscholar","paperid":null,"PeriodicalName":"Proceedings IWPC 2000. 8th International Workshop on Program Comprehension","FirstCategoryId":"1085","ListUrlMain":"https://doi.org/10.1109/WPC.2000.852481","RegionNum":0,"RegionCategory":null,"ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"","JCRName":"","Score":null,"Total":0}
引用次数: 28

摘要

如何定位实现特定功能的代码段?N. Wilde和M.C. Scully (WS)(1995)率先使用执行跟踪将程序特性映射到代码。使用他们的技术来定位特定特征的实现,一个程序用两组输入来执行;一组调用感兴趣的特性,另一组不调用。然后在执行轨迹上应用集差和集交集等操作,以获得与特征及其实现相关的各种问题的答案。以前的研究人员已经自动化了计算执行轨迹和在执行轨迹上执行操作的任务。我们提出了一种形式化的方法,将这种方法中最耗时的部分自动化,用于定位代码,即将输入集划分为调用集和非调用集。输入集的集合使用特征语法进行分区,这是一种带有特征名称注释的程序输入语法。当且仅当输入集的解析树用该特性进行了注释时,输入集才被放置在调用集中。WS的技术只在输入的执行轨迹上应用集合操作。在我们的技术中,我们还在这些输入使用的特征集之间应用集合操作。通过这样做,我们可以精确地确定在执行轨迹上应用操作时识别其实现的特性。
本文章由计算机程序翻译,如有差异,请以英文原文为准。
A formalism to automate mapping from program features to code
How does one locate the segments of code that implement a particular feature? N. Wilde and M.C. Scully (WS) (1995) pioneered the use of execution traces to map program features to code. Using their technique to locate the implementation of a particular feature, a program is executed with two sets of inputs; one set invokes the feature of interest and the other set does not. Operations such as set-difference and set-intersection, amongst others, are then applied on the execution traces to obtain answers for various questions related to a feature and its implementation. Previous researchers have automated the tasks of computing the execution traces and performing operations on the execution traces. We present a formalism to automate the most time-consuming aspect of this approach for locating code, namely, the partitioning of the input sets into invoking and non-invoking sets. A collection of input sets is partitioned using feature syntax, a grammar of the program's input annotated with feature names. An input set is placed in the invoking set if and only if its parse tree is annotated with that feature. WS' technique solely applies set operations on the execution traces of inputs. In our technique, we also apply the set operations among the set of features used by these inputs. By doing so, we can precisely determine the features whose implementation is identified when applying the operations on the execution traces.
求助全文
通过发布文献求助,成功后即可免费获取论文全文。 去求助
来源期刊
自引率
0.00%
发文量
0
×
引用
GB/T 7714-2015
复制
MLA
复制
APA
复制
导出至
BibTeX EndNote RefMan NoteFirst NoteExpress
×
提示
您的信息不完整,为了账户安全,请先补充。
现在去补充
×
提示
您因"违规操作"
具体请查看互助需知
我知道了
×
提示
确定
请完成安全验证×
copy
已复制链接
快去分享给好友吧!
我知道了
右上角分享
点击右上角分享
0
联系我们:info@booksci.cn Book学术提供免费学术资源搜索服务,方便国内外学者检索中英文文献。致力于提供最便捷和优质的服务体验。 Copyright © 2023 布克学术 All rights reserved.
京ICP备2023020795号-1
ghs 京公网安备 11010802042870号
Book学术文献互助
Book学术文献互助群
群 号:604180095
Book学术官方微信