×

数值准确性和鲁棒性的运行时抽象解释。 (英语) Zbl 1472.68095号

Henglein,Fritz(编辑)等人,《验证、模型检验和抽象解释》。第22届国际会议,VMCAI 2021,丹麦哥本哈根,2021年1月17日至19日。诉讼程序。查姆:施普林格。莱克特。注释计算。科学。12597, 243-266 (2021).
摘要:现代软件中数值精度特性的验证仍然是一项重要且具有挑战性的任务。它的困难之一与不稳定测试有关,在这种测试中,实数和浮点数的执行可以采用不同的分支。本文提出了一种新的数值属性验证技术,称为运行时抽象解释(RAI),该技术在给定注释源代码的情况下,将抽象分析器嵌入其中,以分析程序在运行时的行为。RAI是一种结合了抽象解释和运行时验证的混合技术,其目的是保持前者的正确性,同时在必要时从具体运行中获得更高的精度。它通过用两个仔细定义的程序点围绕一个不稳定测试来解决不稳定测试的问题,形成了一个所谓的split-merge部分,它分别分析不同的执行并在该部分末尾合并计算域。我们在名为FLD箱依赖于两个基本工具,FLD编译器,它对给定的程序执行源到源的转换,并定义split-merge部分和一个指令插入库FLDLib公司它提供了必要的原语来探索每个部分的相关(部分)执行并传播准确性属性。初步实验表明,该方法能够有效、可靠地分析薄数值场景下工业程序的数值精度。
关于整个系列,请参见[兹比尔1471.68017].

MSC公司:

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

参考文献:

[1] 巴德,J。;贝克尔,H。;Darulova,E。;MH,ter Beek;McIver,A。;Oliveira,JN,使用基于SMT的证书和细分正式验证的舍入错误,《正式方法-未来30年》,38-44(2019),查姆:斯普林格,查姆·doi:10.1007/978-3-030-30942-84
[2] Baudin,P.、Filliátre,J.C.、Marché,C.、Monate,B.、Moy,Y.、Prevosto,V.:ACSL:ANSI/ISO C规范语言。http://frama-c.com/acsl.html
[3] Benz,F.,Hildebrandt,A.,Hack,S.:发现浮点精度问题的动态程序分析。In:编程语言设计与实现会议(PLDI 2012)(2012)
[4] 布拉齐,S。;比勒,D。;Yakobowski,B。;Bouajjani,A。;Monniaux,D.,《通过状态和值抽象、验证、模型检查和抽象解释构建抽象解释器》,112-130(2017),查姆:斯普林格,查姆·Zbl 06687353号 ·doi:10.1007/978-3-319-52234-07
[5] Boulanger,J.:《软件的静态分析:抽象解释》(2011)
[6] Cadar,C.等人:软件测试实践中的符号执行:初步评估。摘自:第33届国际软件工程会议(ICSE 2011),第1066-1071页。ACM(2011)。doi:10.1145/1985793.1985995
[7] Cadar,C.,Sen,K.:软件测试的象征性执行:三十年后。Commun公司。ACM(2013)
[8] 库索,P.,库索,R.:抽象解释:通过构造或近似不动点对程序进行静态分析的统一格模型。参加:程序设计语言原理研讨会(POPL 1977)(1977)·Zbl 1149.68389号
[9] Damouche,N.,Martel,M.:Salsa:提高程序数值精度的自动工具。In:自动化形式化方法,AFM@NFM(2017年)
[10] Damouche,N.,Martel,M.,Panchekha,P.,Qiu,J.,Sanchez-Stern,A.,Tatlock,Z.:面向浮点分析的标准基准格式和套件。In:NSV 2016(2016)
[11] 达鲁洛娃,E。;Izycheva,A。;纳西尔,F。;里特,F。;贝克尔,H。;Bastian,R。;Beyer,D。;Huisman,M.,Daisy-数值程序分析和优化框架(工具文件),系统构建和分析的工具和算法,270-287(2018),Cham:Springer,Cham·数字对象标识代码:10.1007/978-3-319-89960-2_15
[12] Darulova,E.,Kuncak,V.:值得信赖的scala数值计算。摘自:第26届ACM SIGPLAN面向对象编程、系统、语言和应用年会(OOPSLA 2011),SPLASH 2011的一部分,第325-344页。ACM(2011)。数字对象标识代码:10.1145/2048066.2048094
[13] Darulova,E.,Kuncak,V.:真实的声音汇编。参加:程序设计语言原理研讨会(2014年)·Zbl 1284.68393号
[14] Darulova,E.,Kuncak,V.:面向reals的编译器。ACM事务处理。程序。语言系统(2017)·Zbl 1284.68393号
[15] Daumas,M.,Melquiond,G.:涉及四舍五入运算符的表达式边界的证明。事务处理。数学。柔和。(2010). 数字对象标识代码:10.1145/1644001.1644003·Zbl 1364.68328号
[16] Delahaye,M.,Kosmatov,N.,Signoles,J.:C程序静态和动态分析的通用规范语言。摘自:第28届ACM应用计算、软件验证和测试轨道年度研讨会(SAC-SVT 2013),第1230-1235页。ACM(2013)。数字对象标识代码:10.1145/2480362.2480593
[17] Denis,C.,de Oliveira Castro,P.,Petit,E.:验证:通过蒙特卡罗算法检查浮点精度。摘自:计算机算术(ARITH)研讨会(2016年)。doi:10.1109/ARITH.2016.31
[18] Falcone,Y.、Havelund,K.、Reger,G.:关于运行时验证的教程。In:工程可靠软件系统。IOS出版社(2013)
[19] Févotte,F.,Lathuilière,B.:研究工业计算代码的数字质量:code_aster的案例研究。In:数字软件验证(NSV)(2017)。doi:10.1007/978-3-319-63501-95
[20] Ghorbal,K。;Goubault,E。;推杆,S。;Bouajjani,A。;Maler,O.,区域图抽象域Taylor1+,计算机辅助验证,627-633(2009),海德堡:施普林格,海德堡·doi:10.1007/978-3-642-02658-447
[21] Goubault,E.,Puto,S.:有限精度计算的静态分析。在:验证、模型检查和抽象解释国际会议(VMCAI)(2011)·Zbl 1317.68116号
[22] Goubault,E.,Puto,S.:有限精度实现的稳健性分析。在:亚洲程序设计语言与系统研讨会(APLAS)(2013)·Zbl 1317.68116号
[23] Jézéquel,F.,Chesneaux,J.M.:CADNA:估算舍入误差传播的库。计算。物理学。Commun公司。(2008) ·Zbl 1196.65020号
[24] Kirchner,F.、Kosmatov,N.、Prevosto,V.、Signoles,J.、Yakobowski,B.:Frama-C:软件分析视角。形式方面计算。(2015)
[25] 北科斯马托夫。;Maurica,F。;Signoles,J。;杰·德斯穆赫(J.Deshmukh)。;Nićković,D.,《高效运行时断言检查数学数的属性》,《运行时验证》,310-322(2020),查姆:斯普林格,查姆·doi:10.1007/978-3-030-60508-717
[26] 莱切内,J-C;北科斯马托夫。;Le Gall,P.,《在查找错误之前剪切分支:在放松的切片上进行可靠的验证》,《形式方面计算》。,30, 1, 107-131 (2017) ·Zbl 1380.68127号 ·doi:10.1007/s00165-017-0439-x
[27] Magron,V.,Constantinides,G.A.,Donaldson,A.F.:使用半定编程证明舍入误差界限。ACM事务处理。数学。柔和。43(4), 34:1-34:31 (2017). doi:10.1145/3015465·Zbl 1380.65084号
[28] Monniaux,D.:验证浮点计算的陷阱。事务处理。程序。语言系统。(托普拉斯)(2008年)
[29] de Moura,L。;比约纳,N。;罗马克里希南,CR;Rehof,J.,Z3:高效SMT求解器,系统构建和分析的工具和算法,337-340(2008),海德堡:施普林格·doi:10.1007/978-3-540-78800-3_24
[30] Muller,J.等人:浮点运算手册。Birkhäuser(2010年)。doi:10.1007/978-0-8176-4705-6·兹比尔1197.65001
[31] Nethercote,N.,Seward,J.:Valgrind:重量级动态二进制指令插入框架。在:编程语言设计与实现会议(PLDI)(2007)
[32] Prosser,R.T.:布尔矩阵在流程图分析中的应用。参加:IRE-AIEE-ACM东部联合计算机会议(1959年)。doi:10.145/1460299.1460314
[33] Sánchez,C.等人:高级应用程序域(Beyond software)的运行时验证挑战调查。形式方法系统。设计。(2019) ·兹比尔1425.68268
[34] Sanchez-Stern,A.,Panchekha,P.,Lerner,S.,Tatlock,Z.:找出浮点错误的根本原因。ACM Sigplan通知(2018年)。http://arxiv.org/abs/1705.10416
[35] Signoles,J.:E-ACSL:可执行ANSI/ISO C规范语言。http://frama-c.com/download/e-acsl/e-acsl.pdf
[36] Signoles,J.、Antiginac,T.、Correnson,L.、Lemerre,M.、Prevosto,V.:《Frama-C插件开发指南》。http://frama-c.com/download/plugin-developer.pdf
[37] Signoles,J.、Kosmatov,N.、Vorobyov,K.:E-ACSL,C程序安全性和安全性的运行时验证工具。工具文件。参加:运行时验证工具的竞争、可用性、基准、评估和标准化国际研讨会(RV-CuBES)(2017年)
[38] Solovyev,A。;巴拉诺夫斯基,理学硕士;布里格斯一世。;雅各布森,C。;拉卡马利奇,Z。;Gopalakrishnan,G.,用符号泰勒展开严格估计浮点舍入误差,Trans。程序。语言系统。(2018年)·兹比尔1427.65064 ·数字对象标识代码:10.1145/3230733
[39] Titolo,L.、Feliú,M.A.、Moscato,M.M.、Muñoz,C.A.:浮点程序全面错误分析的抽象解释框架。收录于:验证、模型检查和抽象解释-第19届国际会议,2018年VMCAI,美国加利福尼亚州洛杉矶,1月7-9日,会议记录(2018)。数字对象标识代码:10.1007/978-3-319-73721-8_24·Zbl 1446.68036号
[40] Titolo,L.、Moscato,M.、Muñoz,C.A.:测试稳定浮点代码的自动生成和验证。arXiv电子打印(2020)
[41] Titolo,L.、Muñoz,C.A.、Feliú,M.A.、Moscato,M.M.:消除浮点程序中的不稳定测试。In:Logic-Based Program Synthesis and Transformation(LOPTSR)(2018年)。doi:10.1007/978-3-030-13838-7_10·Zbl 1446.68036号
[42] Védrine,F.,Jacquemin,M.,Kosmatov,N.,Signoles,J.:VMCAI 2021工件评估委员会评估的伴生工件。Zenodoo(2020年)。doi:10.5281/zenodo.4275521
此参考列表基于出版商或数字数学图书馆提供的信息。其项与zbMATH标识符进行启发式匹配,可能包含数据转换错误。在某些情况下,zbMATH Open的数据对这些数据进行了补充/增强。这试图尽可能准确地反映原始论文中列出的参考文献,而不要求完整或完全匹配。