×

将预处理器切片与C/C++语言切片相结合。 (英语) Zbl 1183.68152号

摘要:在极少数程序切片算法的实际实现中,大多数是处理C/C++程序的。然而,这些切片器很少解决与预处理器相关的问题,尽管忽略(或仅部分处理)这些构造可能会导致切片结果严重不准确,从而导致正在执行的程序分析任务严重不准确。最近,提出了一种用于预处理器相关结构的精确切片方法,该方法与现有的C/C++语言切片器相结合,可以提供更完整的切片,从而更成功地分析用这些语言之一编写的程序。在本文中,我们提出了将两种切片方法相结合的方法,并通过实际实验描述了其在结果切片的完整性方面的优势。

MSC公司:

68甲15 编程语言理论
68N99型 软件理论
PDF格式BibTeX公司 XML格式引用
全文: 内政部 链接

参考文献:

[1] Tip,F.:《程序切片技术的调查》,《程序设计语言杂志》3,第3期,121-189(1995)
[2] Weiser,M.:程序切片,IEEE软件工程事务10,第4期,352-357(1984)·Zbl 0552.68004号
[3] 徐,B。;钱,J。;张,X。;吴,Z。;Chen,L.:《程序切片的简要概述》,ACM SIGSOFT软件工程注释30,第2期,1-36页(2005)
[4] A.Garrido,《存在预处理器指令的程序重构》,UIUC博士论文,2005年
[5] M.Vittek、P.Borovansk、P.-E.Moreau,C、C++和Java代码理解和重构插件的集合,收录于:ICSM(工业和工具卷),2005年,第61-64页
[6] GrammaTech CodeSurfer主页,GrammaTech CodeSurfer主页,2008。统一资源定位地址http://www.gramatech.com/products/codesurfer
[7] L.Vidács,A.Beszédes,R.Ferenc,使用宏观切片进行宏观影响分析,摘自:《第二届软件和数据技术国际会议论文集》,ICSOFT’07,2007年,第230–235页
[8] L.Vidács,J.Jász,阿拉斯加州。Beszédes,T.Gyimóthy,《将预处理器切片与C/C++语言切片相结合》,载《第16届IEEE程序理解国际会议论文集》,2008年,第163-171页
[9] 霍维茨,S。;代表,T。;Binkley,D.:使用依赖图的跨过程切片,ACM在编程语言和系统上的事务12,No.1,26-61(1990)
[10] 阿格拉瓦尔,H。;Horgan,J.R.:《动态程序切片》,摘自:《ACM SIGPLAN’90编程语言设计与实现会议论文集》,SIGPLAN通知,第6期,246-256(1990)
[11] ,软件变更影响分析(1996)
[12] 加拉赫,K.B。;Lyle,J.R.:《在软件维护中使用程序切片》,IEEE软件工程事务17,第8期,751-761(1991)
[13] Cimitile,A。;De Lucia,A。;Munro,M.:用于识别可重用功能的规范驱动切片过程,《软件维护杂志:研究与实践》8,第3期,145-178(1996)
[14] J.Zhao,提取可重用软件架构的基于切片的方法,摘自:《第四届欧洲软件维护与再工程会议论文集》,CSMR’00,2000年,第215-223页
[15] 阿格拉瓦尔,H。;Demillo,R.A。;Spafford,E.H.:《使用动态切片和回溯进行调试》,《软件–实践与经验》(SPE)23,第6期,589-616(1993)
[16] Binkley,D.W.:程序切片在回归测试中的应用,《信息与软件技术》40,第11–12期,583-594(1998)
[17] G.Rothermel,M.J.Harrold,《选择测试并确定修改后软件的测试覆盖要求》,摘自:ISSTA’94会议录,1994年,第169–183页
[18] 维达奇,L。;贝塞德斯,A。;Ferenc,R.:C/C++预处理的哥伦布模式,75-84(2004)
[19] 宾克利博士。;Harman,M.:关于前后静态切片大小和上下文敏感性的大规模实证研究,44-53(2003)
[20] 解开主页,解开项目主页,2008年。统一资源定位地址http://itl.nist.gov/div897/sqg/unravel/unravel.html
[21] 莫克,M。;阿特金森特区。;钱伯斯,C。;Eggers,S.J.:《动态点到集的程序切片》,IEEE软件工程事务31,第8期,657-678(2005)
[22] 宾克利,D。;Harman,M.:《确定依赖集群和依赖污染的位置》,177-186(2005)
[23] 利瓦达斯,体育。;Small,D.T.:理解包含预处理器结构的代码,89-97(1994)
[24] 库尔巴赫,B。;Riediger,V.:折叠:一种使程序理解预处理语言的方法,3-12(2001)
[25] Understand for C++主页,《了解C++主页》,2007年。统一资源定位地址网址:http://www/scitools.com
[26] Ottenstein,K.J.(奥滕斯坦,K.J.)。;Ottenstein,L.M.:软件开发环境中的程序依赖图,摘自:ACM SIGSOFT/SIGPLAN实用软件开发环境(SDE)软件工程研讨会论文集,宾夕法尼亚州匹兹堡,SIGPLAN通知,第19(5)号,177-184(1984)·Zbl 0549.68007号
[27] 费伦茨,R。;安大略省贝塞德斯。;Tarkiainen,M。;Gyimóthy,T.:Columbus–C++逆向工程工具和模式,172-181(2002)
[28] FrontEndART软件有限公司,FrontEnd ART软件公司,2008年。统一资源定位地址http://www.frontendart.com网站
[29] 恩斯特,医学博士。;巴德罗斯,G.J。;Notkin,D.:C预处理器使用的实证分析,IEEE软件工程事务28,第12期,1146-1170(2002)
[30] V.Rajlich,《基于图重写的变化传播模型》,载《ICSM学报》1997年,1997年,第84–91页
此参考列表基于出版商或数字数学图书馆提供的信息。其项与zbMATH标识符进行启发式匹配,可能包含数据转换错误。在某些情况下,zbMATH Open的数据对这些数据进行了补充/增强。这试图尽可能准确地反映原始论文中列出的参考文献,而不要求完整或完全匹配。