×

高阶存储程序的符号执行证明。 (英语) Zbl 1356.68145号

概要:高阶存储程序是在运行时存储、操作和调用代码的程序。高阶存储程序的重要示例包括动态加载和卸载内核模块的操作系统内核。然而,传统的Hoare逻辑无法在运行时表示代码的更改,因此不适用于此类程序。然而,最近,使用嵌套Hoare三元组的新逻辑解决了这一缺点。本文从上到下描述了一个适用于高阶存储程序的完善的半自动化验证系统。我们给出了一种具有高阶存储特性的编程语言,定义了一种带有嵌套三元组的断言语言来指定此类程序,并提供了证明程序正确的推理规则。然后,我们完整地介绍了自动构造正确性证明的算法。与早期的工作相比,该语言还包括普通(固定)过程和可变局部变量,使得对执行动态加载和其他高阶存储操作的程序进行建模变得容易。我们给出了程序的操作语义和断言的逐步诱导解释,并使用这些来显示我们的推理规则的合理性,其中包括允许更多模块化证明的深层框架规则。我们的自动推理算法包括基于分离逻辑的程序符号执行方案,以及用于解决各种隐含问题的自动证明程序。后者是以导出的证明规则集的形式表示的,这些规则集受到足够的约束,可以作为一种证明搜索算法来阅读。

MSC公司:

60年第68季度 规范和验证(程序逻辑、模型检查等)
03B70号 计算机科学中的逻辑
68吨15 定理证明(演绎、解析等)(MSC2010)
PDF格式BibTeX公司 XML格式引用
全文: 内政部 链接

参考文献:

[1] Crowfoot网站。www.sussex.ac.uk/informatics/crowfoot(2011)·Zbl 1243.68148号
[2] Beckmann,O.,Houghton,A.,Mellor,M.R.,Kelly,P.H.J.:C++中的运行时代码生成是特定领域优化的基础。In:领域特定程序生成,第291-306页(2003)·Zbl 1055.03021号
[3] Benton,N.,Kennedy,A.,Beringer,L.,Hofmann,M.:基于效果的程序转换的关系语义:高阶存储。包含:PPDP,第301-312页(2009年)·Zbl 1155.68354号
[4] Berdine,J.、Calcagno,C.、O'Hearn,P.W.:Smallfoot:带分离逻辑的模块化自动断言检查。收录:FMCO,第115-137页(2005)·Zbl 0874.68189号
[5] Berdine,J.、Calcagno,C.、O'Hearn,P.W.:带分离逻辑的符号执行。收录:APLAS,第52-68页(2005年)·Zbl 1159.68363号
[6] Biering,B.,Birkedal,L.,Torp-Smith,N.:双高辛,高阶分离逻辑和抽象。ACM事务处理。程序。语言系统。29 (5) (2007) ·兹比尔1109.03021
[7] Birkedal,L.,Reus,B.,Schwinghammer,J.,Stövring,K.,Thamsborg,J..,Yang,H.:递归世界上的阶跃诱导Kripke模型。收录:POPL'11,第119-132页。IEEE(2011)·Zbl 1284.68102号
[8] Birkedal,L.,Torp-Smith,N.,Yang,H.:类Algol语言的分离逻辑类型和高阶框架规则的语义。LMCS 2(5)(2006)·Zbl 1127.68019号
[9] Blom,S.、Huisman,M.:见证魔杖的消失(2013)·Zbl 1315.68085号
[10] Cai,H.,Shao,Z.,Vaynberg,A.:认证自修改代码。收件人:PLDI,第66-77页(2007年)
[11] Calcagno,C.,Distefano,D.,O'Hearn,P.,Yang,H.:通过双向归纳法进行成分形状分析。ACM SIGPLAN通知44(1),289-300(2009)·Zbl 1315.68085号·doi:10.1145/1594834.1480917
[12] Charguéraud,A:命令式程序验证的特征公式。收录:Chakravarty,M.M.T.,Hu,Z.,Danvy,O.(编辑)ICFP,第418-430页。ACM(2011)·兹比尔1323.68366
[13] Charlton,N.,Horsfall,B.,Reuse,B.:关于运行时代码更新的形式化推理。摘自:Abiteboul,S.,Böhm,K.,Koch,C.,Tan,K.-L.(编辑)ICDE研讨会,第134-138页。IEEE(2011)
[14] Charlton,N.、Horsfall,B.、Reus,B.:Crowfoot:高阶存储程序的验证器。在:Kuncak,V.,Rybalchenko,A.(编辑)VMCAI,《计算机科学讲义》第7148卷,第136-151页。施普林格(2012)·Zbl 1325.68143号
[15] 查尔顿,N.,罗伊斯,B.:对深层框架公理的更深入理解。扩展摘要,发表于LOLA(低级语言的语法和语义)(2010)
[16] Charlton,N.,Reuse,B.:通过存储为递归指定模式和证明。收录:FCT,第310-321页(2011年)·Zbl 1342.68207号
[17] Chin,W.-N.,David,C.,Nguyen,H.H.,Qin,S.:通过分离逻辑中用户定义的谓词自动验证形状、大小和袋子属性。科学。计算。程序。77 (9), 1006-1036 (2012) ·Zbl 1243.68148号 ·doi:10.1016/j.scico.2010.07.004
[18] Chlipala,A.:大多数是计算分离逻辑中低级程序的自动验证。收录:Hall,M.W.,Padua,D.A.(编辑)PLDI,第234-245页。ACM(2011)
[19] Chlipala,A.,Malecha,J.G.,Morrisett,G.,Shinnar,A.,Wisnesky,R.:高阶命令式程序的有效交互证明。收录:Hutton,G.,Tolmach,A.P.(编辑)ICFP,第79-90页。ACM(2009年)·Zbl 1302.68087号
[20] Distefano,D.,O'Hearn,P.W.,Yang,H.:基于分离逻辑的局部形状分析。收录:TACAS,第287-302页(2006年)·Zbl 1180.68112号
[21] Distefano,D.,Parkinson,M.J.:jStar:面向Java的实际验证。收录于:OOPSLA,第213-226页(2008)
[22] Gherghina,C.、David,C.,Qin,S.、Chin,W.N.:用于更好地验证堆操作程序的结构化规范。收录:FM,第386-401页(2011年)·Zbl 1055.03021号
[23] Gordon,M.J.C.,Milner,R.,Wadsworth,C.P.:爱丁堡LCF,计算机科学讲义第78卷。施普林格(1979)·兹比尔1155.68354
[24] Henderson,B.:Linux可加载内核模块HOWTO(v1.09)。在线可用http://tldp.org/HOWTO/Module-HOWTO/ (2006)
[25] 霍尔,CAR;Engeler,E.(编辑),《程序和参数:公理方法》,102-116(1971),海德堡·Zbl 0221.68020号 ·doi:10.1007/BFb0059696
[26] Honda,K.,Yoshida,N.,Berger,M.:命令式高阶函数的观测完备程序逻辑。收录:LICS,第270-279页(2005年)·Zbl 1358.68071号
[27] Horsfall,B.:反思程序的自动推理。博士论文(2014)
[28] Horsfall,B.,Charlton,N.,Reus,B.:验证反射访客模式。In:FtFJP,第27-34页(2012年)
[29] Jacobs,B.,Smans,J.,Philippearts,P.,Vogels,F.,Penninckx,W.,Piessens,F.:VeriFast:C和Java的强大、可靠、可预测、快速验证器。In:NASA形式方法,第41-55页(2011年)
[30] Jacobs,B,Smans,J,Piessens,F:快速浏览VeriFast程序验证器。纳入:APLAS,第304-311页(2010年)·Zbl 0874.68189号
[31] Lee,W.,Park,S.:使用魔术棒的分离逻辑证明系统。摘自:第41届ACM SIGPLAN-SIGACT编程语言原理研讨会论文集,POPL,第477-490页,美国纽约,2014年。ACM公司·Zbl 1284.68408号
[32] Nanevski,A.J.、Morrisett,G.、Birkedal,L.:霍尔类型理论、多态性和分离。J.功能。程序。18 (5-6), 865-911 (2008) ·Zbl 1155.68354号 ·网址:10.1017/S0956796808006953
[33] Ni,Z.,Shao,Z.:使用嵌入式代码指针的认证程序集编程。收录:POPL,第320-333页(2006年)·Zbl 1369.68150号
[34] Pottier,F.:以直接方式隐藏本地状态:高阶反帧规则。在LICS中,第331-340页,宾夕法尼亚州匹兹堡(2008)
[35] Pym,D.J.,O'Hearn,P.W.,Yang,H.:可能的世界和资源:BI.Theor的语义。计算。科学。315 (1), 257-305 (2004) ·Zbl 1055.03021号·doi:10.1016/j.tcs.2003.11.020
[36] Reuse,B.,Schwinghammer,J.:高阶存储的分离逻辑。收录:CSL,第575-590页(2006年)·Zbl 1225.03033号
[37] Reynolds,J.C.:分离逻辑:一种用于共享可变数据结构的逻辑。收录于:LICS,第55-74页(2002年)
[38] Rutten,J.J.M.M.:广义超量域理论的要素。西奥。计算。科学。170 (1-2), 349-381 (1996) ·Zbl 0874.68189号·doi:10.1016/S0304-3975(96)80711-0
[39] Schwerhoff,M.,Summers,A.J.:自动验证器中魔术棒的轻量级支持。苏黎世ETH技术报告(2014)
[40] Schwinghammer,J.,Birkedal,L.,Reus,B.,Yang,H.:嵌套Hoare三元组和高阶存储的框架规则。收录:CSL,第440-454页(2009年)·Zbl 1257.03056号
[41] Schwinghammer,J.,Birkedal,L.,Reus,B.,Yang,H.:嵌套Hoare三元组和高阶存储的框架规则。逻辑方法计算。科学。7 (3) (2011) ·Zbl 1237.68066号
[42] Schwinghammer,J.,Yang,H.,Birkedal,L.,Pottier,F.,Reus,B:隐藏状态的语义基础。收录:FOSSACS,第2-17页(2010年)·Zbl 1284.68376号
[43] Stoyle,G.、Hicks,M.、Bierman,G.,Sewell,P.、Neamtiu,I.:变形变种:安全和可预测的动态软件更新。ACM事务处理。程序。语言系统。29 (4) (2007) ·Zbl 1369.68157号
此参考列表基于出版商或数字数学图书馆提供的信息。其项与zbMATH标识符进行启发式匹配,可能包含数据转换错误。在某些情况下,zbMATH Open的数据对这些数据进行了补充/增强。这试图尽可能准确地反映原始论文中列出的参考文献,而不要求完整或完全匹配。