×

对程序切片使用关系验证。 (英语) Zbl 07817490号

Oh lveczky,Peter Csaba(编辑)等人,《软件工程和形式化方法》。2019年9月18-20日在挪威奥斯陆举行的第17届SEFM国际会议。诉讼程序。查姆:斯普林格。莱克特。注释计算。科学。11724, 353-372 (2019).
概要:程序切片是从程序中删除语句的过程,以便保留其行为的定义方面。为了生成精确的切片,即大小最小的切片,必须考虑程序的语义。现有的方法超越了语法分析并考虑了语义,它们不是完全自动的,需要用户提供辅助规范。在本文中,我们采用关系验证来检查通过从程序中删除一些指令而获得的候选切片是否确实是有效切片。在此基础上,我们提出了一个精确和自动的程序切片框架。作为该框架的一部分,我们提出了生成候选切片的三种策略,并展示了如何将动态切片方法(将生成和检查候选切片交织在一起)用于此目的。该框架可以很容易地用其他生成候选切片的策略进行扩展。我们讨论了使用我们的框架的切片方法的优缺点。
关于整个系列,请参见[Zbl 1419.68015号]。

理学硕士:

68号30 软件工程的数学方面(规范、验证、度量、需求等)
60年第68季度 规范和验证(程序逻辑、模型检查等)

软件:

z3(零3)
PDF格式BibTeX公司 XML格式引用
全文: 内政部 链接

参考文献:

[1] LLVM语言参考手册。https://llvm.org/docs/LangRef.html。2019年2月6日访问
[2] Agrawal,H.,Horgan,J.R.:动态程序切片。摘自:ACM SIGPLAN 1990年编程语言设计与实现会议记录,PLDI 1990,第246-256页。ACM,纽约(1990年)。https://doi.org/10.1145/93542.93576
[3] Barraclough,R.W.等人:程序切片的基于轨迹的严格语义。理论。计算。科学。411(11), 1372-1386 (2010). https://doi.org/10.1016/j.tcs.2009.10.025 ·Zbl 1191.68405号
[4] Barros,J.B.,da Cruz,D.,Henriques,P.R.,Pinto,J.S.:基于断言的切片和切片图。形式方面计算。24(2), 217-248 (2012). https://doi.org/10.1007/s00165-011-0196-1 ·Zbl 1259.68119号
[5] Beckert,B.,Bormer,T.,Gocht,S.,Herda,M.,Lentzsch,D.,Ulbrich,M.:SemSlice:利用关系验证进行自动程序切片。收件人:Polikarpova,N.,Schneider,S.(eds.)IFM 2017。LNCS,第10510卷,第312-319页。查姆施普林格(2017)。https://doi.org/10.1007/978-3-319-66845-120
[6] Beckert,B.、Bormer,T.、Gocht,S.、Herda,M.、Lentzsch,D.、Ulbrich,M.:SemSlice的评估数据(2019年)。https://doi.org/10.5281/zenodo.3334571
[7] Beckert,B.,Bormer,T.,Gocht,S.,Herda,M.,Lentzsch,D.,Ulbrich,M.:SemSlice工具的实施(2019年)。https://doi.org/10.5281/zenodo.3334553
[8] Binkley,D.,Harman,M.:对程序切片的实证结果的调查。载:《计算机进展》,第62卷,第105-178页。Elsevier(2004)。https://doi.org/10.1016/S0065-2458(03)62003-6
[9] Canfora,G.,Cimitile,A.,Lucia,A.D.:有条件程序切片。Inf.软件。Technol公司。40(11-12), 595-607 (1998). https://doi.org/10.1016/S0950-5849(98)00086-X
[10] Chung,I.S.,Lee,W.K.,Yoon,G.S.,Kwon,Y.R.:基于规范的程序切片。摘自:2001年ACM应用计算研讨会论文集,SAC 2001,第605-609页。ACM,纽约(2001年)。https://doi.org/10.1145/372202.372784
[11] Comuzzi,J.J.,Hart,J.M.:使用最弱的前提条件进行程序切片。摘自:Gaudel,M.-C.,Woodcock,J.(编辑)FME 1996。LNCS,第1051卷,第557-575页。斯普林格,海德堡(1996)。https://doi.org/10.1007/3-540-60973-3_107
[12] da Cruz,D.、Henriques,P.R.、Pinto,J.S.:GamaSlicer:程序验证和分析的在线实验室。摘自:《第十届语言描述、工具和应用研讨会论文集》,LDTA 2010,第3:1-3:8页。ACM,纽约(2010年)。https://doi.org/10.1145/1868281.1868284
[13] De Angelis,E.,Fioravanti,F.,Pettorossi,A.,Proietti,M.:通过horn子句转换进行关系验证。摘自:Rival,X.(编辑)SAS 2016。LNCS,第9837卷,第147-169页。斯普林格,海德堡(2016)。https://doi.org/10.1007/978-3-662-53413-7_8 ·Zbl 1394.68227号
[14] Felsing,D.,Grebing,S.,Klebanov,V.,Rümmer,P.,Ulbrich,M.:自动化回归验证。在:第29届ACM/IEEE自动化软件工程国际会议论文集,ASE 2014,第349-360页。ACM(2014)。https://doi.org/10.1145/2642937.2642987
[15] Ferrante,J.、Ottenstein,K.J.、Warren,J.D.:程序依赖图及其在优化中的应用。ACM事务处理。程序。语言系统。9(3), 319-349 (1987). https://doi.org/10.1145/24039.24041 ·Zbl 0623.68012号
[16] Field,J.,Ramalingam,G.,Tip,F.:参数化程序切片。摘自:第22届ACM SIGPLAN-SIGACT编程语言原理研讨会论文集,POPL 1995,第379-392页。ACM,纽约(1995年)。https://doi.org/10.1145/199484.199534
[17] Halder,R.,Cortesi,A.:依赖条件图的抽象程序切片。科学。计算。程序。78(9), 1240-1263 (2013). https://doi.org/10.1016/j.scico.2012.05.007
[18] Hall,R.J.:通过同步动态程序切片自动提取可执行程序子集。自动。柔和。工程2(1),33-53(1995)。https://doi.org/10.1007/BF00873408
[19] Hammer,C.,Snelting,G.:基于程序依赖图的流敏感、上下文敏感和对象敏感信息流控制。国际期刊信息安全。8(6), 399-422 (2009). https://doi.org/10.1007/s10207-009-0086-1
[20] Herda,M.,Tyszberowicz,S.,Beckert,B.:使用依赖图来帮助验证和测试信息流属性。收录:Dubois,C.,Wolff,B.(编辑)TAP 2018。LNCS,第10889卷,第83-102页。查姆施普林格(2018)。https://doi.org/10.1007/978-3-319-92994-15 ·Zbl 1509.68048号
[21] Horwitz,S.,Prins,J.,Reps,T.:关于表示程序的程序依赖图的充分性。摘自:第十五届ACM SIGPLAN-SIGACT编程语言原理研讨会论文集,POPL 1988,第146-157页。ACM,纽约(1988年)。https://doi.org/10.1145/73560.73573
[22] Jaffar,J.、Murali,V.、Navas,J.A.、Santosa,A.E.:路径敏感后向切片。摘自:Miné,A.,Schmidt,D.(编辑)SAS 2012。LNCS,第7460卷,第231-247页。施普林格,海德堡(2012)。https://doi.org/10.1007/978-3642-33125-1_17
[23] Jaffar,J.、Murali,V.、Navas,J.A.、Santosa,A.E.:TRACER:用于验证的符号执行工具。收录:Madhusudan,P.,Seshia,S.A.(编辑)CAV 2012。LNCS,第7358卷,第758-766页。施普林格,海德堡(2012)。https://doi.org/10.1007/978-3-642-31424-7_61 ·Zbl 1478.68164号
[24] Kiefer,M.,Klebanov,V.,Ulbrich,M.:使用编译器IR的关系程序推理——结合静态验证和动态分析。J.自动化。原因。60(3), 337-363 (2017). https://doi.org/10.1007/s10817-017-9433-5 ·Zbl 1426.68052号
[25] Kirchner,F.,Kosmatov,N.,Prevosto,V.,Signoles,J.,Yakobowski,B.:Frama-c:软件分析视角。形式方面计算。27(3), 573-609 (2015). https://doi.org/10.1007/s00165-014-0326-7
[26] Klebanov,V.,Rümmer,P.,Ulbrich,M.:通过谓词抽象实现指针程序的自动回归验证。形式方法系统。设计。52(3), 229-259 (2018). https://doi.org/10.1007/s10703-017-0293-8 ·Zbl 1392.68146号
[27] Korel,B.,Laski,J.W.:动态程序切片。信息处理。莱特。29(3), 155-163 (1988). https://doi.org/10.1016/0020-0190(88)90054-3 ·Zbl 0656.68018号
[28] Korel,B.,Rilling,J.:动态程序切片方法。Inf.软件。Technol公司。40(11-12), 647-659 (1998). https://doi.org/10.1016/S0950-5849(98)00089-5
[29] Léchenet,J.-C.,Kosmatov,N.,Le Gall,P.:在寻找错误之前剪下树枝:在放松的切片上进行声音验证。摘自:Stevens,P.,Wąsowski,A.(编辑)FASE 2016。LNCS,第9633卷,第179-196页。斯普林格,海德堡(2016)。https://doi.org/10.1007/978-3-662-49665-7_11 ·Zbl 1378.68023号
[30] Liu,T.,Tyszberowicz,S.,Herda,M.,Beckert,B.,Grahl,D.,Taghdiri,M.:用于程序验证的计算规范敏感抽象。收录人:Fränzle,M.,Kapur,D.,Zhan,N.(编辑)SETTA 2016。LNCS,第9984卷,第101-117页。查姆施普林格(2016)。https://doi.org/10.1007/978-3-319-47677-3_7
[31] Lucia,A.D.:程序切片:方法和应用程序。摘自:《IEEE源代码分析和操作国际研讨会论文集》,第142-149页,2001年11月。https://doi.org/10.109/SCAM.2001.972675
[32] de Moura,L.,Björner,N.:Z3:高效SMT求解器。收录:Ramakrishnan,C.R.,Rehof,J.(编辑)TACAS 2008。LNCS,第4963卷,第337-340页。施普林格,海德堡(2008)。https://doi.org/10.1007/978-3-540-78800-3_24
[33] Podgurski,A.,Clarke,L.A.:程序依赖性的正式模型及其对软件测试、调试和维护的影响。IEEE传输。柔和。工程16(9),965-979(1990)。https://doi.org/10.1109/32.58784
[34] Ranganath,V.P.,Amtoft,T.,Banerjee,A.,Hatcliff,J.,Dwyer,M.B.:现代程序结构的控制依赖和切片的新基础。ACM事务处理。程序。语言系统。29(5) (2007). https://doi.org/10.1145/1275497.1275502
[35] Rümmer,P.,Hojjat,H.,Kuncak,V.:角条款验证的分离插值。收录:Sharygina,N.,Veith,H.(编辑)CAV 2013。LNCS,第8044卷,第347-363页。斯普林格,海德堡(2013)。https://doi.org/10.1007/978-3-642-39799-8_24
[36] Snelting,G.,Robschink,T.,Krinke,J.:软件安全分析依赖图中的有效路径条件。ACM事务处理。柔和。工程方法。15(4), 410-457 (2006). https://doi.org/10.1145/1178625.1178628
[37] Tip,F.:程序切片技术综述。技术报告,阿姆斯特丹,荷兰,荷兰(1994年)。https://www.franktip.org/pubs/jpl1995.pdf
[38] Verdoolaege,S.,Janssens,G.,Bruynooghe,M.:使用加宽处理循环的静态仿射程序的等价性检查。ACM事务处理。程序。语言系统。34(3), 11:1-11:35 (2012). https://doi.org/10.1145/2362389.2362390
[39] Ward,M.:切片定义的属性。2009年9月,第九届IEEE源代码分析和操作国际工作会议,第23-32页。https://doi.org/10.109/SCAM.2009.12
[40] Weiser,M.:程序切片。摘自:《第五届软件工程国际会议论文集》,ICSE 1981,美国新泽西州皮斯卡塔韦,第439-449页。IEEE出版社(1981)。http://dl.acm.org/citation.cfm?id=800078.802557
[41] Xu,B.,Qian,J.,Zhang,X.,Wu,Z.,Chen,L.:程序切片的简要概述。SIGSOFT软件。工程注释30(2),1-36(2005)。https://doi.org/10.1145/1050849.1050865
此参考列表基于出版商或数字数学图书馆提供的信息。其项与zbMATH标识符进行启发式匹配,可能包含数据转换错误。在某些情况下,zbMATH Open的数据对这些数据进行了补充/增强。这试图尽可能准确地反映原始论文中列出的参考文献,而不要求完整或完全匹配。