×

符号框架(mathbb{K})中的抽象契约合成与验证。 (英语) Zbl 1497.68106号

摘要:在本文中,我们提出了一种符号技术,可用于从用非平凡的C片段编写的程序(称为KERNELC)中自动推断软件契约,该片段支持基于指针的结构和堆操作。从KERNELC在\(mathbb{K}\)语义框架中的语义定义出发,我们用基于抽象包含的新的契约合成功能来丰富\(mathbb{K{)最近提供的符号执行工具。粗略地说,我们定义了一种抽象符号技术,它通过在同一程序中使用其他(观察程序)例程来公理地解释任何(修饰符)C函数的执行。我们在自动化工具KINDSPEC2.1中实现了我们的技术,该工具生成逻辑公理,表示定义C例程精确输入/输出行为的前置和后置条件断言。由于\(mathbb{K}\)提供了对符号执行和演绎验证的集成支持,一些由于抽象而无法通过构造保证正确的合成公理最终可以在我们的设置中轻松地进行验证。

MSC公司:

68号30 软件工程的数学方面(规范、验证、度量、需求等)
68甲15 编程语言理论
60年第68季度 规范和验证(程序逻辑、模型检查等)
PDF格式BibTeX公司 XML格式引用
全文: 内政部

参考文献:

[1] Meyer B.应用“合同设计”。计算机,1992.25(10):40-51。doi:10.1109/2.161279。
[2] Cousot P,Cousot R,Fähndrich M,Logozzo F.必要前提的自动推断。摘自:第14届国际验证、模型检验和抽象解释大会(VMCAI 2013),计算机科学讲稿第7737卷。施普林格,2013年,第128-148页。doi:10.1007/978-3642-35873-9_10。
[3] Ellison C,Roösu G.C的可执行形式语义及其应用。摘自:第39届ACM SIGPLAN-SIGACT编程语言原理研讨会论文集(POPL'12)。ACM,纽约,2012年,第533-544页。doi:10.1145/2103656.2103719。
[4] Cobleigh JM、Giannakopoulou D、P和areanu CS。成分验证的学习假设。收录于:第九届国际系统构建与分析工具与算法大会论文集(TACAS'03),计算机科学讲稿第2619卷。施普林格,海德堡,2003年,第331-346页。doi:10.1007/3-540-36577-X24·Zbl 1031.68545号
[5] Alpunte M,FeliúMA,Villanueva A.使用匹配逻辑的规范自动推断。摘自:ACM SIGPLAN 2013年部分评估和程序操作研讨会会议记录(PEPM’13)。ACM,纽约,2013年,第127-136页。doi:10.1145/2426890.2426914。
[6] Alpunte M,Pardo D,Villanueva A.K框架中规范的自动推断。电子程序。理论成分。科学,2015.200:1-17。doi:10.4204/EPTCS.200.1。
[7] Liskov B,Guttag J.《程序开发中的抽象与规范》。麻省理工学院出版社,马萨诸塞州剑桥,美国,1986年·Zbl 0644.68001号
[8] 国王JC。符号执行和程序测试。ACM通讯,1976.19(7):385-394。doi:10.1145/360248.360252·Zbl 0329.68018号
[9] P˘as \728]areanu CS,Visser W.软件测试和分析符号执行新趋势的调查。国际技术转让软件工具期刊,2009.11(4):339-353。doi:10.1007/s10009-009-01118-1。
[10] Roösu G,˘Serb \728]anu \728;a TF.K语义框架概述.逻辑与代数编程杂志,2010.79(6):397-434。doi:10.1016/j.jlap.2010.03.012·Zbl 1214.68188号
[11] Ro˘su G,Stef˘anescu A.匹配逻辑:一种新的程序验证方法(NIER Track)。收录:第33届国际软件工程大会(ICSE’11)会议记录。ACM,纽约,2011年,第868-871页。doi:10.1145/1985793.1985928。
[12] ■Stef˘anescu A,Park D,Yuwen S,Li Y,Roösu G.所有语言的基于语义的程序验证程序。摘自:2016年ACM SIGPLAN国际面向对象编程、系统、语言和应用大会论文集(OOPSLA’16)。ACM,2016年,第74-91页。doi:10.1145/2983990.2984027。
[13] Arusoaie A、Lucanu D、Rusu V。基于语言转换的符号执行。计算机语言、系统与结构,2015.44(A):48-71。doi:10.1016/j.cl.2015.08.004·Zbl 1387.68047号
[14] Anand S,P˘as \728]areanu CS,Visser W.抽象符号执行。国际技术转让软件工具期刊,2009.11(1):53-67。doi:10.1007/s10009-008-0090-1。
[15] Khurshid S,P˘as \728]areanu CS,Visser W.模型检查和测试的广义符号执行。收录:第九届国际系统构建与分析工具与算法大会论文集(TACAS'03)。ACM,纽约,2003年,第553-568页。doi:10.1007/3-540-36577-X_40·Zbl 1031.68519号
[16] Alpunte M,Pardo D,Villanueva A.重写框架中的符号抽象契约合成。摘自:第26届基于逻辑的程序合成与转换国际研讨会论文集(LOPSTR’16),计算机科学讲稿第10184卷。查姆施普林格,2016年,第187-202页。doi:10.1007/978-3-319-63139-4_11·Zbl 1485.68051号
[17] Moura Ld,Björner N.Z3:高效SMT求解器。收录于:《第14届国际系统构建和分析工具与算法大会论文集》(TACAS'08),计算机科学讲稿第4963卷。施普林格,海德堡,2008年,第337-340页。doi:10.1007/978-3-540-78800-3_24。
[18] Baudin P、Cuoq P、Filliátre JC、MarchéC、Monate B、Moy Y、Prevosto V.ACSL:ANSI/ISO C规范语言,版本1.42010。
[19] Milner R.沟通与并发。普伦蒂斯·霍尔,1989年·Zbl 0683.68008号
[20] Hähnle R,Baum M,Bubel R,Rothe M.基于符号执行的可视化交互式调试器。收录:第25届IEEE/ACM国际自动化软件工程会议(ASE’10)论文集。ACM,纽约,2010年,第143-146页。doi:10.145/18589996.1859022。
[21] Cousot P,Cousot R.抽象解释:通过构造或逼近不动点对程序进行静态分析的统一格模型。摘自:第四届ACM SIGACT-SIGPLAN编程语言原理研讨会论文集(POPL’77)。ACM,纽约,1977年,第238-252页。doi:10.1145/512950.51793。
[22] Manevich R,Yahav E,Ramalingam G,Sagiv S.单链表的谓词抽象和规范抽象。收录于:第六届国际验证、模型检验和抽象解释大会论文集(VMCAI'05),计算机科学讲稿第3385卷。斯普林格,海德堡,2005年,第181-198页。doi:10.1007/978-3-540-30579-8_13·Zbl 1111.68398号
[23] Jaffar J,Navas JA,Santosa AE.程序验证的无限符号执行。收录:第二届运行时验证国际会议记录,RV'11。海德堡施普林格出版社,ISBN 978-3-642-2985922012年,第396-411页。doi:10.1007/978-3642-29860-8_32。
[24] Padhi S,Sharma R,Millstein T.LoopInvGen:基于前提推理的循环不变量生成器,2017年。统一资源定位地址https://arxiv.org/abs/1707.02029。
[25] 从重写逻辑到编程语言语义,再到程序验证。在:《逻辑、重写和并发:在J.Meseguer 65岁生日之际献给他的散文》中,《Comp讲座笔记》。科学。,第598-616页。斯普林格,2015年。doi:10.1007/978-3-319-23165-5_28·Zbl 1321.68337号
[26] 基于终端余代数的对象语义方法。计算机科学中的数学结构,1995.5(2):129-152。doi:10.1017/S0960129500000694·Zbl 0854.18006号
[27] O.Stef˘anescu A,Ciob \728]A S,Moore B,O.Serbi˙anut A TF,Ro˗su G.Reachability Logic in K.技术报告,UIUC,2013年。
[28] Ro˘su G,Stef˘anescu A,Ciobâc˘A S,Moore B.单路径可达性逻辑。摘自:第28届ACM/IEEE年度计算机科学逻辑研讨会论文集(LICS’13)。2013年,第358-367页。doi:10.1109/LICS.2013.42·Zbl 1366.68182号
[29] Ostef˘anescu A、Ciob \728]AᱸS、Mereuta R、Moore BM、Oserb \728'anut˙A TF、Ro˖su G.All-Path Reachability Logic。收录于:第25届改写技术与应用国际联合会议和第12届键入Lambda演算与应用国际会议论文集(RTA-TLCA’14),计算机科学讲稿第8560卷。查姆施普林格,2014年,第425-440页。doi:10.1007/978-3-319-08918-8_29·Zbl 1416.68052号
[30] Magill S,Nanevski A,Clarke A,Lee P.为命令式列表处理程序推断分离逻辑中的不变量。参加:第三届空间研讨会。2006年doi:10.11.115.8677。
[31] Calcagno C,Distefano D,O'Hearn PW,Yang H.足迹分析:发现先决条件的形状分析。摘自:第14届国际静态分析研讨会(SAS'07)论文集,计算机科学讲稿第4634卷。施普林格,海德堡,2007年,第402-418页。doi:10.1007/978-3-54074061-2-25。
[32] Gulavani BS、Chakraborty S、Ramalingam G、Nori AV。使用LISF进行自下而上的形状分析。美国计算机学会程序设计语言与系统学报(TOPLAS),2011.33(5):17:1-17:41.doi:10.1145/2039346.2039349·Zbl 1248.68145号
[33] Moy Y,MarchéC.安全检查子程序契约的模块化推理。符号计算杂志,2010.45(11):1184-1211。doi:10.1016/j.jsc.2010.06.004·Zbl 1213.68385号
[34] Wei Y,Furia CA,Kazmin N,Meyer B.推断更好的合同。收录:第33届国际软件工程大会(ICSE’11)会议记录。ACM,2011年,第191-200页。doi:10.145/1985793.1985820。
[35] Tillmann N,Chen F,Schulte W.发现可能的方法规范。摘自:《第八届国际形式方法与软件工程大会论文集》(ICFEM’06),计算机科学讲稿第4260卷。斯普林格,海德堡,2006年,第717-736页。doi:10.1007/11901433_39。
[36] Ernst MD、Perkins JH、Guo PJ、McCamant S、Pacheco C、Tschantz MS、Xiao C。可能不变量动态检测的Daikon系统。计算机程序设计科学,2007.69(1-3):35-45。doi:10.1016/j.scico.2007.015.15·Zbl 1161.68390号
[37] Hangal S,Lam MS。使用自动异常检测跟踪软件错误。摘自:第24届国际软件工程大会(ICSE’02)会议记录。ACM,纽约,2002年,第291-301页。doi:10.1145/581339.581377。
[38] Smallbone N、Johansson M、Claessen K、Algehed M。繁忙程序员的快速规范。函数编程杂志,2017.27:e18。doi:10.1017/S0956796817000090·Zbl 1418.68037号
[39] Henkel J、Reichenbach C、Diwan A.发现Java容器类的文档。IEEE软件工程学报,2007.33(8):526-543。doi:10.1109/TSE.2007.70705。
[40] Csallner C,Tillmann N,Smaragdakis Y.DySy:不变性推理的动态符号执行。收录于:第30届国际软件工程会议论文集(ICSE'08)。ACM,纽约,2008年,第281-290页。doi:10.1145/1368088.1368127。
[41] Whaley J,Martin MC,Lam MS。面向对象组件接口的自动提取。在:第12届ACM SIGSOFT软件测试与分析国际研讨会论文集(ISSTA'02)。ACM,纽约,2002年,第218-228页。doi:10.1145/566171.566212。
[42] Giannakopoulou D,P作为Arenu CS。JavaPathfinder中的接口生成和组合验证。摘自:第12届国际软件工程基本方法大会(FASE'09),计算机科学讲稿5503卷。海德堡施普林格,2009年,第94-108.doi:10.1007/978-3642-00593-0_7页。
[43] Bacci G、Comini M、FeliúMA、Villanueva A.一阶咖喱课程规范的自动合成。摘自:第14届声明式编程原理与实践研讨会(PPDP'12)会议记录。ACM,纽约,2012年,第25-34页。doi:10.1145/2370776.2370781·Zbl 1281.68075号
[44] Taghdiri M,Jackson D.推断规范以检测代码中的错误。自动化软件工程,2007.14(1):87-121。doi:10.1007/s10515-006-0005-x。
[45] Ghezzi C,Mocci A,Monga M。通过图形变换合成内涵行为模型。摘自:IEEE第31届国际软件工程大会(ICSE’09)会议记录。2009年,第430-440页。doi:10.1109/ICSE.2009.5070542。
[46] Clavel M、Durán F、Eker S、Lincoln P、Martí-Oliet n、Meseguer J、Talcott CL(编辑)。Maude简介-高性能逻辑框架,如何在重写逻辑中指定、编程和验证系统,计算机科学讲义第4350卷。施普林格,2007年·Zbl 1115.68046号
[47] Berdine J、Calcagno C、Cook B、Distefano D、O’Hearn PW、Wies T、Yang H.复合数据结构的形状分析。收录于:第19届国际计算机辅助验证大会(CAV'07)会议记录,《计算机辅助验证》第4590卷。科学。施普林格,海德堡,2007年,第178-192页。doi:10.1007/978-3-54073368-3_22·Zbl 1135.68372号
[48] Distefano D、O'Hearn PW、Yang H。
此参考列表基于出版商或数字数学图书馆提供的信息。其项与zbMATH标识符进行启发式匹配,可能包含数据转换错误。在某些情况下,zbMATH Open的数据对这些数据进行了补充/增强。这试图尽可能准确地反映原始论文中列出的参考文献,而不要求完整或完全匹配。