×

将高阶分离逻辑连接到外部一阶世界。 (英语) Zbl 1508.68070号

Müller,Peter(编辑),《编程语言和系统》。2020年4月25日至30日在爱尔兰都柏林举行的第29届欧洲编程研讨会(ESOP 2020),是欧洲软件理论与实践联合会议(ETAPS 2020)的一部分。诉讼程序。查姆:斯普林格。莱克特。注释计算。科学。12075428-455(2020年)。
摘要:分离逻辑是证明操作内存的程序正确性的有用工具,特别是当内存模型包含高阶状态时:Step-indexing、堆中的谓词和高阶虚状态被用于推理函数指针、数据结构不变量、,和复杂的并发模式。另一方面,系统功能(例如操作系统)和外部世界(例如组件之间的通信)的行为通常使用一阶形式来指定。原则上,分离逻辑的稳健性定理是其与一阶定理的接口,但稳健性原理可能隐含地对如何指定其他组件进行假设,从而限制了它的使用。在本文中,我们展示了如何将验证软件工具链的高阶分离逻辑扩展到与一阶验证操作系统(在本例中为CertiKOS)的接口,该操作系统调解了其与外部世界的交互。由此产生的系统允许我们根据CertiKOS中实现的系统调用的语义证明分离逻辑中C程序的正确性。它还表明,交互树+CompCert内存的组合可以作为通用语言接口和组合两种截然不同的程序验证风格。
关于整个系列,请参见[Zbl 1496.68030号].

MSC公司:

68号30 软件工程的数学方面(规范、验证、度量、需求等)
03B70号 计算机科学中的逻辑
60年第68季度 规范和验证(程序逻辑、模型检查等)
PDF格式BibTeX公司 XML格式引用
全文: 内政部

参考文献:

[1] Appel,A.W.,Dockins,R.,Hobor,A.,Beringer,L.,Dodds,J.,Stewart,G.,Blazy,S.,Leroy,X.:认证编译器的程序逻辑。剑桥大学出版社(2014),http://www.cambridge.org/de/academic/subjects/computer science/programming-languages-and-applied-logic/program-logics-certified-compilers?format=HB ·Zbl 1298.68009号
[2] Chen,H.,Ziegler,D.,Chajed,T.,Chlipala,A.,Kaashoek,M.F.,Zeldovich,N.:使用Crash-Hoare Logic认证FSCQ文件系统。摘自:第25届操作系统原理研讨会论文集。第18-37页。SOSP’15,美国纽约州纽约市ACM(2015)。https://doi.org/10.1145/2815400.2815402
[3] Dinsdale-Young,T.,Birkedal,L.,Gardner,P.,Parkinson,M.J.,Yang,H.:观点:并发程序的组合推理。摘自:Giacobazzi,R.,Cousot,R.(eds.)第40届ACM SIGPLAN-SIGACT编程语言原理年度研讨会,2013年1月23日至25日,意大利罗马,POPL'13。第287-300页。ACM(2013年)。https://doi.org/10.1145/2429069.2429104 ·Zbl 1301.68099号
[4] Dinsdale-Young,T.,Dodds,M.,Gardner,P.,Parkinson,M.J.,Vafeiadis,V.:并发抽象谓词。摘自:D'Hondt,T.(编辑)ECOOP 2010——面向对象编程,第24届欧洲会议,2010年6月21日至25日,斯洛文尼亚马里博尔。诉讼程序。计算机科学课堂讲稿,第6183卷,第504-528页。施普林格(2010)。https://doi.org/10.1007/978-3-642-14107-2_24
[5] Férée,H.,Pohjola,J.Au。,Kumar,R.、Owens,S.、Myreen,M.O.、Ho,S.:存在I/O语义的程序验证、验证的库例程和验证的应用程序。In:Piskac,R.,Rümmer,P.(编辑)验证软件。理论、工具和实验——第十届国际会议,2018年7月18日至19日,英国牛津VSTTE,修订论文集。《计算机科学讲义》,第11294卷,第88-111页。斯普林格(2018)。https://doi.org/10.1007/978-3-030-03592-1_6
[6] Gu,R.,Koenig,J.,Ramananandro,T.,Shao,Z.,Wu,X.N.,Weng,S.C.,Zhang,H.,Guo,Y.:深层规范和认证抽象层。摘自:第42届ACM SIGPLAN-SIGACT编程语言原理年度研讨会论文集。第595-608页。POPL’15,美国纽约州纽约市ACM(2015)。https://doi.org/10.1145/2676726.2676975 ·Zbl 1345.68107号
[7] Gu,R.,Shao,Z.,Chen,H.,Wu,X.N.,Kim,J.,Sjöberg,V.,Costanzo,D.:Certikos:构建认证并发操作系统内核的可扩展架构。2016年11月2日至4日,美国佐治亚州萨凡纳,第十二届USENIX操作系统设计与实现研讨会,OSDI 2016。第653-669页(2016年),https://www.usenix.org/conference/osdi16/technical-sessions/presentation/gu
[8] Gu,R.、Shao,Z.、Kim,J.、Wu,X.N.、Koenig,J.、Sjöberg,V.、Chen,H.、Costanzo,D.、Ramananandro,T.:认证并发抽象层。摘自:第39届ACM SIGPLAN编程语言设计与实现会议记录,2018年6月18日至22日,美国宾夕法尼亚州费城,PLDI 2018。第646-661页(2018年)。https://doi.org/10.1145/3192366.3192381
[9] Guéneau,A.,Myreen,M.O.,Kumar,R.,Norrish,M.:CakeML的验证特征配方。摘自:Yang,H.(编辑)《编程语言和系统》,第584-610页。施普林格,柏林-海德堡,柏林,海德堡(2017)·Zbl 1485.68030号
[10] Hawblitzel,C.,Howell,J.,Lorch,J.R.,Narayan,A.,Parno,B.,Zhang,D.,Zill,B.:铁杆应用:通过自动全系统验证实现端到端安全。在:2014年10月6日至8日,美国科罗拉多州布鲁姆菲尔德,OSDI’14,第11届USENIX操作系统设计与实现研讨会。第165-181页(2014),https://www.usenix.org/conference/osdi14/technical-sessions/presentation/hawblitzel
[11] Jung,R.、Krebbers,R.,Birkedal,L.、Dreyer,D.:高阶鬼态。摘自:第21届ACM SIGPLAN函数编程国际会议记录。第256-269页。ICFP 2016,ACM,美国纽约州纽约市(2016)。https://doi.org/10.1145/2951913.2951943 ·Zbl 1361.68066号
[12] Klein,G.、Elphinstone,K.、Heiser,G.,Andronick,J.、Cock,D.、Derrin,P.、Elkaduwe,D.、Engelhardt,K.,Kolanski,R.、Norrish,M.、Sewell,T.、Tuch,H.、Winwood,S.:seL4:操作系统内核的形式验证。摘自:ACM SIGOPS第22届操作系统原理研讨会论文集。第207-220页。SOSP’09,美国纽约州纽约市ACM(2009年)。https://doi.org/10.1145/1629575.1629596
[13] Koh,N.、Li,Y.、Li、Y.、Xia,L.Y.、Beringer,L.、Honoré,W.、Mansky,W.,Pierce,B.C.、Zdancewic,S.:从C到交互树:指定、验证和测试网络服务器。收录:第八届ACM SIGPLAN认证程序和证明国际会议记录。第234-248页。CPP 2019,美国纽约州纽约市ACM(2019)。https://doi.org/10.1145/3293880.3294106
[14] Krogh-Jespersen,M.,Timany,A.,Ohlenbusch,M.E.,Birkedal,L.:《Aneris:分布式系统的节点局部模块化推理逻辑》(2019),https://iris-project.org/pdfs/2019-aneris-submission.pdf,未发布草稿
[15] Leroy,X.,Appel,A.W.,Blazy,S.,Stewart,G.:CompCert内存模型。摘自:Appel,A.W.(编辑)《认证编译器程序逻辑》,第32章。剑桥大学出版社(2014)
[16] Ley-Wild,R.,Nanevski,A.:粗粒度并发的主观辅助状态。摘自:第40届ACM SIGPLAN-SIGACT编程语言原理年度研讨会论文集。第561-574页。2013年POPL,美国纽约州纽约市ACM(2013)。https://doi.org/10.1145/2429069.2429134 ·Zbl 1301.68102号
[17] O'Hearn,P.W.:资源、并发和局部推理。西奥。计算。科学。375(1-3),271-307(2007年4月)。https://doi.org/10.1016/j.tcs.2006.12.035 ·Zbl 1111.68023号
[18] Penninckx,W.,Jacobs,B.,Piessens,F.:程序输入/输出行为的声音、模块和合成验证。2015年4月11日至18日,作为欧洲软件理论与实践联合会议的一部分,2015年ESOP第24届欧洲编程研讨会,ETAPS 2015,英国伦敦。诉讼程序。第158-182页(2015年)。https://doi.org/10.1007/978-3-662-46669-8_7 ·Zbl 1335.68063号
[19] Sergey,I.,Nanevski,A.,Banerjee,A.:用历史和主观性来指定和验证并发算法。在:Vitek,J.(编辑)第24届欧洲编程研讨会论文集(ESOP 2015)。计算机科学课堂讲稿,第9032卷,第333-358页。斯普林格(2015)。https://doi.org/10.1007/978-3-662-46669-8_14 ·兹比尔1335.68067
[20] Wang,Y.,Wilke,P.,Shao,Z.:一种基于抽象堆栈的方法,用于验证机器代码的组合编译。美国计算机学会程序设计语言会议记录3(POPL),62(2019)
[21] Yang,J.,Hawblitzel,C.:安全到最后一条指令:类型安全操作系统的自动验证。摘自:2010年6月5日至10日在加拿大安大略省多伦多举行的2010年ACM SIGPLAN编程语言设计与实现会议记录,PLDI 2010。第99-110页(2010年)。https://doi.org/10.1145/1806596.1806610
此参考列表基于出版商或数字数学图书馆提供的信息。其项与zbMATH标识符进行启发式匹配,可能包含数据转换错误。在某些情况下,zbMATH Open的数据对这些数据进行了补充/增强。这试图尽可能准确地反映原始论文中列出的参考文献,而不要求完整或完全匹配。