×

带有指针的程序演绎合成:技术、挑战、机会(特邀论文)。 (英语) Zbl 1493.68053号

Silva,Alexandra(编辑)等人,《计算机辅助验证》。第33届国际会议,CAV 2021,虚拟活动,2021年7月20日至23日。诉讼程序。第一部分查姆:施普林格。莱克特。注释计算。科学。12759, 110-134 (2021).
摘要:本文介绍了堆操作程序演绎综合的主要思想,并概述了该方法当前面临的挑战及其应用前景。
关于整个系列,请参见[Zbl 1489.68029号].

理学硕士:

68号01 软件理论的一般主题
60年第68季度 规范和验证(程序逻辑、模型检查等)
PDF格式BibTeX公司 XML格式引用
全文: 内政部

参考文献:

[1] 阿克拉维奥,M。;洛杉矶斯特拉汉堡。;Galmiche,D。;舒尔茨,S。;Sebastiani,R.,《从句法证明到组合证明》,《自动推理》,481-497(2018),查姆:Springer,查姆·Zbl 1508.03089号 ·doi:10.1007/978-3-319-94205-632
[2] Alur,R.等人:句法引导合成。参见:FMCAD,第1-8页。IEEE(2013)
[3] 阿鲁尔(Alur,R.)。;拉达克里什纳,A。;乌杜帕,A。;Legay,A。;Margaria,T.,《通过分治来缩放枚举程序合成》,《系统构建和分析的工具和算法》,319-336(2017),海德堡:斯普林格,海德伯格·Zbl 1452.68043号 ·doi:10.1007/978-3-662-54577-5_18
[4] Appel,A.W.等人:认证编译器的程序逻辑。剑桥大学出版社(2014)·Zbl 1298.68009号
[5] Balog,M.,Gaunt,A.L.,Brockschmidt,M,Nowozin,S.,Tarlow,D.:深度编码器:学习编写程序。arXiv预印arXiv:1611.01989(2016)
[6] Barke,S.、Peleg,H.、Polikarpova,N.:自下而上枚举综合的实时学习。程序。ACM计划。语言4(OOPSLA),227:1-227:29(2020)
[7] Berdine,J。;加尔卡尼奥,C。;奥赫恩,普华永道;Yi,K.,《分离逻辑的符号执行》,《编程语言与系统》,52-68(2005),海德堡:施普林格出版社·Zbl 1159.68363号 ·doi:10.1007/11575467_5
[8] Blaauwbroek,L.,Urban,J.,Geuvers,H.:针对考证助理的战术学习和证明。输入:LPAR。EPiC计算机系列,第73卷,第138-150页。EasyChair(2020年)·Zbl 1455.68242号
[9] JC布兰切特;格林纳韦,D。;Kaliszyk,C。;Kühlwein,D。;Urban,J.,Isabelle/HOL的基于学习的事实选择器,J.Autom。原因。,57, 3, 219-244 (2016) ·Zbl 1386.68149号 ·doi:10.1007/s10817-016-9362-8
[10] 布鲁克斯,S。;O'Hearn,PW,并发分离逻辑,ACM SIGLOG News,3,3,47-65(2016)·doi:10.1145/2984450.2984457
[11] Brotherston,J.,Bornat,R.,Calcagno,C.:分离逻辑中程序终止的循环证明。收录于:POPL,第101-112页。ACM(2008)·Zbl 1295.68156号
[12] 加尔卡尼奥,C。;Distefano,D。;博巴鲁,M。;Havelund,K。;GJ霍尔兹曼;Joshi,R.,《推断:C程序内存安全的自动程序验证器》,NASA形式方法,459-465(2011),海德堡:斯普林格·doi:10.1007/978-3-642-20398-5_33
[13] Calcagno,C.,Distefano,D.,O'Hearn,P.W.,Yang,H.:通过双折法进行成分形状分析。J.ACM 58(6),26:1-26:66(2011)·Zbl 1281.68155号
[14] Chajed,T.、Tassarotti,J.、Kaashoek,M.F.、Zeldovich,N.:验证多年生并发防撞系统。收录于:SOSP,第243-258页。ACM(2019年)
[15] 陈,Y。;王,C。;O.巴斯塔尼。;迪利格,I。;冯瑜;拉希里,斯洛伐克;Wang,C.,使用演绎引导的强化学习进行程序合成,计算机辅助验证,587-610(2020),Cham:Springer,Cham·Zbl 1478.68054号 ·文件编号:10.1007/978-3-030-53291-8_30
[16] Chilimbi,T.M.,Hill,M.D.,Larus,J.R.:Cache-conscious结构布局。在:PLDI,第1-12页。ACM(1999)
[17] 下巴,W-N;大卫·C。;阮,HH;秦,S.,通过分离逻辑中用户定义的谓词自动验证形状、大小和袋子属性,Sci。计算。程序。,77, 9, 1006-1036 (2012) ·Zbl 1243.68148号 ·doi:10.1016/j.scico.2010.07.004
[18] Chlipala,A.:大多数是计算分离逻辑中低级程序的自动验证。收录于:PLDI,第234-245页。ACM(2011)
[19] Costea,A。;朱,A。;Polikarpova,N。;谢尔盖,I.,《用指针更好地综合程序的简明只读规范》,《编程语言和系统》,141-168(2020),查姆:斯普林格,查姆·Zbl 1508.68056号 ·doi:10.1007/978-3-030-44914-8_6
[20] Deligna-Lavaud,A.等人:实施并证明tls 1.3记录层。摘自:标准普尔,第463-482页。IEEE计算机学会(2017)
[21] Dinsdale-Young,T。;da Rocha Pinto,P。;安达信,KJ;Birkedal,L。;Yang,H.,Caper:细粒度并发的自动验证,《编程语言和系统》,420-447(2017),海德堡:斯普林格·Zbl 1485.68060号 ·doi:10.1007/978-3-662-54434-1_16
[22] Dinsdale-Young,T。;多兹,M。;加德纳,P。;帕金森,MJ;瓦菲亚迪斯,V。;D’Hondt,T.,并发抽象谓词,ECOOP 2010-面向对象编程,504-528(2010),海德堡:施普林格·doi:10.1007/978-3-642-14107-2_24
[23] 多兹,M。;X·冯。;帕金森,M。;瓦菲亚迪斯,V。;Castagna,G.,《拒绝保证推理》,《编程语言与系统》,363-377(2009),海德堡:施普林格出版社·Zbl 1234.68075号 ·doi:10.1007/978-3642-00590-9_26
[24] Eguchi,S。;小林,N。;Tsukada,T。;Ryu,S.,《带辅助函数的函数程序自动合成》,《编程语言与系统》,223-241(2018),查姆:斯普林格,查姆·兹比尔1519.68046 ·doi:10.1007/978-3-030-02768-1_13
[25] Feng,X.:本地依赖保证推理。收录于:POPL,第315-327页。ACM(2009)·Zbl 1315.68088号
[26] Ferraiuolo,A.,Baumann,A.,Hawblitzel,C.,Parno,B.:科莫多:使用验证将安全飞地硬件与软件分离。收录于:SOSP,第287-305页。ACM(2017)
[27] Frankle,J.、Osera,P.-M.、Walker,D.、Zdancewic,S.:示例定向合成:类型理论解释。收录于:POPL,第802-815页。ACM(2016)·Zbl 1347.68049号
[28] Gauthier,T.,Kaliszyk,C.,Urban,J.:战术脚趾:学习用HOL4战术进行推理。收录于:LPAR,EPiC计算机系列,第46卷,第125-143页。EasyChair(2017年)·Zbl 1403.68224号
[29] 吉拉德,J-Y,线性逻辑,Theor。计算。科学。,50, 1-102 (1987) ·Zbl 0625.03037号 ·doi:10.1016/0304-3975(87)90045-4
[30] Le Goues,C。;Pradel,M。;Roychoudhury,A.,自动化程序修复,Commun。ACM,62,12,56-65(2019)·doi:10.1145/3318162
[31] Gu,R.等:Certikos:一种可扩展的架构,用于构建经过认证的并发操作系统内核。收录于:OSDI,第653-669页。USENIX协会(2016)
[32] Huang,K.,Qiu,X.,Shen,P.,Wang,Y.:调和枚举和演绎程序综合。收录于:PLDI,第1159-1174页。ACM(2020年)
[33] Hughes,D.J.D.:统一网:标准证明网量词。收录于:LICS,第540-549页。ACM(2018)·Zbl 1452.03134号
[34] Itzhaky,S.,Peleg,H.,Polikarpova,N.,Rowe,RN.S.,Sergey,I.:循环程序综合。输入:PLDI。ACM(2021年)
[35] Itzhaky,S.、Peleg,H.、Polikarpova,N.、Rowe,R.N.S.、Sergey,I.:SuSLik(CAV 2021工件):代码和基准,2021年5月。doi:10.5281/zenodo.4850342
[36] Jacobs,B.,Piessens,F.:表达型模块化细粒度并发规范。收录于:POPL,第271-282页。ACM(2011)·Zbl 1284.68428号
[37] 雅各布斯,B。;Smans,J。;Philippearts,P。;Vogels,F。;佩宁克斯,W。;皮森,F。;博巴鲁,M。;Havelund,K。;GJ霍尔兹曼;Joshi,R.,《VeriFast:一个强大、可靠、可预测、快速的C和Java验证器》,美国国家航空航天局正式方法,41-55(2011),海德堡:施普林格,海德堡·doi:10.1007/978-3-642-20398-54
[38] 荣格(Jung,R.)。;Krebbers,R。;Jourdan,J-H;Bizjak,A。;Birkedal,L。;Dreyer,D.,《从头开始的Iris:高阶并发分离逻辑的模块化基础》,J.Funct。程序。,28,E20(2018)·Zbl 1476.68062号 ·doi:10.1017/S0956796818000151
[39] Kalyan,A.,Mohta,A.,Polozov,O.,Batra,D.,Jain,P.,Gulwani,S.:基于示例的实时程序合成的神经引导演绎搜索。In:ICLR。OpenReview.net(2018)
[40] 川原,T。;伊藤,K。;Takemura,R。;Ohno,H.,自旋传递转矩RAM技术:回顾与展望,微电子。信实。,52, 4, 613-627 (2012) ·doi:10.1016/j.microle.2011.09.028
[41] Klein,G.:SeL4:操作系统内核的形式化验证。收录于:SOSP,第207-220页。ACM(2009)
[42] Kneuss,E。;库库托斯,M。;昆卡,V。;Kroening,D。;Péséreau,CS,演绎程序修复,计算机辅助验证,217-233(2015),Cham:Springer,Cham·doi:10.1007/978-3-319-21668-3_13
[43] Kneuss,E.,Kuraj,I.,Kuncak,V.,Suter,P.:合成模递归函数。收录于:OOPSLA,第407-426页。ACM(2013)
[44] Knoth,T.、Wang,D.、Polikarpova,N.、Hoffmann,J.:资源导向的程序综合。收录于:PLDI,第253-268页。ACM(2019年)
[45] Lee,B.C.,Ipek,E.,Mutlu,O.,Burger,D.:将相变存储器设计为可扩展的dram替代方案。摘自:ISCA,第2-13页。ACM(2009)
[46] Lee,W.,Heo,K.,Alur,R.,Naik,M.:使用学习的概率模型加速基于搜索的程序合成。输入:PLDI。ACM(2018)
[47] Rustan,K.,Leino,M.,Milicevic,A.:jennisys的程序推断。摘自:OOPSLA,第411-430页。ACM(2012年)
[48] Leroy,X.:编译器后端的正式认证或:使用校对助手对编译器进行编程。收录于:POPL,第42-54页。ACM(2006)·Zbl 1369.68124号
[49] Loos,S.M.、Irving,G.、Szegedy,C.、Kaliszyk,C.:深度网络引导的证明搜索。收录于:LPAR,EPiC计算机系列,第46卷,第85-105页。EasyChair(2017年)·Zbl 1403.68197号
[50] Madhusudan,P.,Qiu,X.,Stefanescu,A.:归纳树数据结构的递归证明。收录于:POPL,第123-136页。ACM(2012年)·兹比尔1321.68226
[51] Malcolm,G.,《数据结构和程序转换》,科学。计算。程序。,14, 2-3, 255-279 (1990) ·兹比尔0712.68014 ·doi:10.1016/0167-6423(90)90023-7
[52] Manna,Z。;RJ Waldinger,程序综合的演绎方法,ACM Trans。程序。语言系统。,2, 1, 90-121 (1980) ·Zbl 0468.68009号 ·数字对象标识代码:10.1145/357084.357090
[53] 安德烈奥利,J.,《线性逻辑中聚焦证明的逻辑编程》,J.逻辑计算。,2, 297-347 (1992) ·Zbl 0764.03020号 ·doi:10.1093/logcom/2.3.297
[54] Martelli,A.,Montanari,U.:加法与或图。收录于:IJCAI,第1-11页。威廉·考夫曼(1973)
[55] Menon,A.、Tamuz,O.、Gulwani,S.、Lampson,B.、Kalai,A.:通过示例进行编程的机器学习框架。摘自:机器学习国际会议,第187-195页(2013)
[56] 梅维尔,G。;Jourdan,J-H;Pottier,F。;Caires,L.,《虹膜中的时间学分和时间收据》,《编程语言和系统》,3-29(2019),查姆:斯普林格,查姆·Zbl 1524.68097号 ·doi:10.1007/978-3-030-17184-1_1
[57] 缪勒,P。;Schwerhoff,M。;AJ萨默斯;Jobstmann,B。;Leino,KRM,Viper:基于许可的推理、验证、模型检查和抽象解释的验证基础设施,41-62(2016),海德堡:施普林格·Zbl 1475.68191号 ·doi:10.1007/978-3-662-49122-52
[58] Y.长岛。;Lin,AW,LiFtEr:Isabelle/HOL的归纳启发编码语言,《编程语言与系统》,266-287(2019),查姆:斯普林格,查姆·数字对象标识代码:10.1007/978-3-030-34175-6_14
[59] Y.Nagashima:Isabelle/HOL的智能感应(工具文件)。收录于:FMCAD,第245-254页。IEEE(2020)
[60] Nagashima,Y.,He,Y.:PaMpeR:Isabelle/HOL的证明方法推荐系统。在:ASE,第362-372页。ACM(2018)
[61] Nanevski,A。;Ley Wild,R。;谢尔盖,I。;佐治亚州德尔比安科;Shao,Z.,细粒度并发资源的通信状态转换系统,编程语言与系统,290-310(2014),海德堡:施普林格,海德堡·Zbl 1405.68219号 ·doi:10.1007/978-3-642-54833-8_16
[62] Nanevski,A.,Vafeiadis,V.,Berdine,J.:构建堆操作程序的验证。收录于:POPL,第261-274页。ACM(2010)·Zbl 1312.68065号
[63] Nguyen,T-T;Ta,Q-T;谢尔盖,I。;下巴,W-N;Henglein,F。;Shoham,S。;Vizel,Y.,使用演绎合成、验证、模型检查和抽象解释自动修复堆操作程序,376-400(2021),Cham:Springer,Cham·Zbl 1472.68040号 ·doi:10.1007/978-3-030-67067-2_17
[64] Ni,Z.,Shao,Z.:使用嵌入式代码指针的认证程序集编程。收录于:POPL,第320-333页。ACM(2006)·Zbl 1369.68150号
[65] O'Hearn,PW,《资源、并发和局部推理》,Theor。计算。科学。,375, 1-3, 271-307 (2007) ·Zbl 1111.68023号 ·doi:10.1016/j.tcs.2006.12.035
[66] 奥赫恩,P。;雷诺兹,J。;Yang,H。;弗里堡,L.,《关于改变数据结构的程序的局部推理》,《计算机科学逻辑》,1-19(2001),海德堡:斯普林格出版社·Zbl 0999.68045号 ·doi:10.1007/3-540-44802-0_1
[67] Osera,P.-M.,Zdancewic,S.:类型和示例导向的程序合成。收录于:PLDI,第619-630页。ACM(2015)
[68] 皮斯卡,R。;Wies,T。;Zufferey,D。;E·阿尔布拉哈姆。;Havelund,K.,《GRASShopper:使用混合规范完成堆验证》,《系统构建和分析的工具和算法》,124-139(2014),海德堡:施普林格,海德伯格·doi:10.1007/978-3-642-54862-89
[69] Polikarpova,N.,Kuraj,I.,Solar-Lezama,A.:基于多态精炼类型的程序合成。在:PLDI,第522-538页。ACM(2016)
[70] Polikarpova,N。;Sergey,I.,堆操作程序的结构合成,Proc。ACM计划。Lang.,3,POPL,72:1-72:30(2019年)·数字对象标识代码:10.1145/3290385
[71] Protzenko,J.等人:Evercrypt:一个快速、经过验证的跨平台加密提供商。收录于:标准普尔,第983-1002页。IEEE计算机学会(2020)
[72] 邱,X.,Solar-Lezama,A.:可证明正确数据结构操作的自然合成。PACMPL 1(OOPSLA),65:1-65:28(2017)
[73] Ramananandro,T.等人:Everparse:验证安全的零拷贝解析器,用于验证消息格式。收录于:USENIX安全研讨会,第1465-1482页。USENIX协会(2019)
[74] 雷诺兹,A。;昆卡,V。;Tinelli,C。;巴雷特,CW;Deters,M.,SMT中基于反驳的合成,形式方法。系统。设计。,55, 2, 73-102 (2019) ·Zbl 1427.68051号 ·doi:10.1007/s10703-017-0270-2
[75] Reynolds,J.C.:分离逻辑:共享可变数据结构的逻辑。收录于:LICS,第55-74页。IEEE计算机学会(2002)
[76] Rowe,R.N.S.,Brotherston,J.:分离逻辑中递归过程的自动循环终止证明。收录于:CPP,第53-65页。ACM(2017)
[77] 萨哈,S。;加格,P。;Madhusudan,P。;Kroening,D。;普斯勒厄,CS,炼金术士:学习保护仿射函数,计算机辅助验证,440-446(2015),查姆:施普林格,查姆·doi:10.1007/978-3-319-21690-426
[78] Sanchez-Stern,A.,Alhessi,Y.,Saul,L.,Lerner,S.:用神经网络生成正确性证明。摘自:第四届ACM SIGPLAN机器学习和编程语言国际研讨会论文集,第1-10页。ACM(2020年)
[79] 谢勒·G·Rémy·D:哪些简单的类型有独特的居住者?收录于:ICFP,第243-255页。ACM(2015)·Zbl 1360.68341号
[80] Sergey,I.,Nanevski,A.,Banerjee,A.:细粒度并发程序的机械化验证。收录于:PLDI,第77-87页。ACM(2015)
[81] Sergey,I.,Nanevski,A.,Banerjee,A.,Delbianco,G.A.:Hoare-style规范是非线性并发对象的正确性条件。收录于:OOPSLA,第92-110页。ACM(2016)
[82] Si,X.,Yang,Y.,Dai,H.,Naik,M.,Song,L.:学习语法引导程序合成的元解决方案。参加:国际学习代表大会(2019年)
[83] Srivastava,S.、Gulwani,S.和Foster,J.S.:从程序验证到程序合成。收录于:POPL,第313-326页。ACM(2010)·Zbl 1312.68068号
[84] 斯特鲁科夫,DB;斯奈德,GS;Stewart博士;威廉姆斯,RS,《发现丢失的忆阻器》,《自然》,453,80-83(2008)·doi:10.1038/nature06932网址
[85] Svendsen,K。;Birkedal,L。;Shao,Z.,令人印象深刻的并发抽象谓词,程序设计语言与系统,149-168(2014),海德堡:施普林格,海德堡·Zbl 1405.68092号 ·doi:10.1007/978-3-642-54833-89
[86] Trinh,M-T;乐,QL;大卫·C。;下巴,W-N;Shan,C.,用于规范推理的纯属性的Bi外展,编程语言和系统,107-123(2013),Cham:Spriger,Cham·Zbl 1426.68067号 ·doi:10.1007/978-3-319-03542-08
[87] Turon,A.:理解和表达可伸缩并发。东北大学博士论文(2013)
[88] Turon,A.J.、Thamsborg,J.、Ahmed,A.、Birkedal,L.、Dreyer,D.:细粒度并发的逻辑关系。收录于:POPL,第343-356页。ACM(2013)·Zbl 1301.68181号
[89] 瓦菲亚迪斯,V。;帕金森,M。;Caires,L。;Vasconcelos,VT,《依赖/保证与分离逻辑的结合》,CONCUR 2007-并发理论,256-271(2007),海德堡:斯普林格,海德伯格·Zbl 1151.68556号 ·doi:10.1007/978-3-540-74407-8_18
[90] van Tonder,R.,Le Goues,C.:堆属性的静态自动程序修复。收录于:ICSE,第151-162页ACM(2018)
[91] Vollmer,M.,Koparkar,C.,Rainey,M.、Sakka,L.、Kulkarni,M.和Newton,R.R.:LoCal:一种对序列化数据进行操作的程序语言。收录于:PLDI,第48-62页。ACM(2019年)
[92] Vollmer,M.等人:编译树转换以对压缩表示进行操作。输入:ECOOP。LIPIcs,第74卷,第26:1-26:29页。达格斯图尔宫(2017)
[93] Watanabe,Y.、Gopinathan,K.、Prlea,G.、Polikarpova,N.、Sergey,I.:证明堆操作程序的综合(2021)。ICFP’21有条件接受
[94] 温莎,M。;多兹,M。;Simner,B。;帕金森,MJ;马朱姆达尔,R。;Kunčak,V.,Starling:使用视图进行轻量级并发验证,计算机辅助验证,544-569(2017),Cham:Springer,Cham·Zbl 1494.68065号 ·doi:10.1007/978-3-319-63387-9_27
[95] Yang,K.,Deng,J.:通过与证明助手的互动学习证明定理。输入:ICML。PMLR,第97卷,第6984-6994页(2019年)
[96] Zinzindohoué,J.-K.,Bhargavan,K.,Protzenko,J.,Beurdouche,B.:HACL*:一个经过验证的现代密码库。收录于:CCS,第1789-1806页。ACM(2017)
此参考列表基于出版商或数字数学图书馆提供的信息。它的项目与zbMATH标识符启发式匹配,并且可能包含数据转换错误。在某些情况下,zbMATH Open的数据对这些数据进行了补充/增强。这试图尽可能准确地反映原始论文中列出的参考文献,而不要求完整或完全匹配。