跳到主要内容
研究论文

reals的声音编译

出版:2014年1月8日 出版历史

摘要

由于存在许多不可避免的不确定性,包括实现的有限数值精度,编写准确的数值软件是很困难的。我们提出了一个编程模型,在该模型中,用户使用实值实现和规范语言编写程序,明确包含不同类型的不确定性。然后,我们提出了一种编译算法,该算法生成一个有限精度的实现,该实现保证满足实数的期望精度。我们的汇编针对不同的候选精度执行了许多验证步骤。它生成了统一处理所有不确定性来源的验证条件,并将关于有限精度舍入误差的推理编码为关于实数的推理。这种验证条件可以用作验证数值程序精度和正确性的标准格式。由于其非线性性质,对这些验证条件进行精确推理仍然很困难,无法仅使用最先进的SMT求解器进行处理。因此,我们提出了一种新的方法,将实域上的精确SMT求解与近似和健全仿射以及区间算法相结合。我们表明,该方法克服了SMT求解器的可伸缩性限制,同时提供了比仿射和区间算法更高的精度。我们的实现在几个数值模型上给出了有希望的结果,包括动力系统、超越函数和控制器实现。

补充材料

JPG文件 (d1_left_t12.jpg)
MP4文件 (d1左t12.mp4)

工具书类

[1]
卡利珀开源框架。http://code.google.com/p/caliper/。
[2]
A.Anta和P.Tabuada。采样与否:非线性系统的自触发控制。IEEE自动控制汇刊,55(9),2010年。
[3]
A.Anta、R.Majumdar、I.Saha和P.Tabuada。控制系统实现的自动验证。EMSOFT,2010年。
[4]
A.Ayad和C.Marché。浮点程序的多重验证。2010年,IJCAR。
[5]
D.H.Bailey、Y.Hida、X.S.Li和B.Thompson。C++/Fortran-90双双和四双包。http://crdlegacy.lbl.gov/?dhbailey/mpdist/, 2013.
[6]
F.Benz、A.Hildebrandt和S.Hack。动态程序分析以发现浮点精度问题。PLDI,2012年。
[7]
R.Blanc、E.Kneuss、V.Kuncak和P.Suter。Leon验证系统概述:通过转换为递归函数进行验证。2013年,在Scala研讨会上。
[8]
B.Blanchet、P.Cousot、R.Cousot、J.Feret、L.Mauborgne、A.Miné、D.Monniaux和X.Rival。大型安全关键软件的静态分析器。在PLDI中,第196-2072003页。
[9]
M.Borges、M.d'Amorim、S.Anand、d.Bushnell和C.S.Pasareanu。具有区间求解和元神经搜索的符号执行。ICST,2012年。
[10]
C.Borraleras、S.Lucas、A.Oliveras、E.Rodríguez-Carbonell和A.Rubio。求解多项式约束的Sat模线性算法。《自动推理》,48(1),2012年。
[11]
A.Brillout、D.Kroening和T.Wahl。浮点运算的混合抽象。在FMCAD中,第69-76页,2009年。
[12]
S.Chaudhuri、S.Gulwani和R.Lublinerman。程序的连续性分析。在POPL,2010年。
[13]
S.Chaudhuri、S.Gulwani、R.Lublinerman和S.Navidpour。证明程序健壮。ESEC/FSE,2011年。
[14]
L.Chen、A.Miné、J.Wang和P.Cousot。区间多面体:推断区间线性关系的抽象域。在SAS,2009年。
[15]
E.Darulova和V.Kuncak。可靠的Scala数值计算。2011年,OOPSLA。
[16]
E.Darulova和V.Kuncak。数值约束的验证解决方案。RV,2012年。
[17]
E.Darulova、V.Kuncak、R.Majumdar和I.Saha。定点程序的合成。EMSOFT,2013年。
[18]
F.de Dinechin、C.Lauter和G.Melquiond。使用Gappa验证基本函数的浮点实现。IEEE传输。计算。,2011
[19]
L.H.de Figueiredo和J.Stolfi。自我验证的数值方法和应用。IMPA/CNPq,巴西,1997年。
[20]
L.De Moura和N.Björner。Z3:一个高效的SMT求解器。在TACAS,2008年。
[21]
D.Delmas、E.Goubault、S.Puto、J.Souyris、K.Tekkal和F.Vedrine。在安全关键航空电子软件上实现FLUCTUAT的工业应用。在FMICS中,2009年。
[22]
V.D’Silva、L.Haller、D.Kroening和M.Tautschnig。冲突驱动学习的数值边界分析。在TACAS,2012年。
[23]
J.A.Duracz和M.Konecny。多项式函数外壳和浮点软件验证。CFV/IJCAR,2008年。
[24]
J.费雷特。数字滤波器的静态分析。在ESOP中,2004年。
[25]
S.Gao、M.Ganai、F.Ivancic、A.Gupta、S.Sankaranarayanan和E.Clarke。集成ICP和LRA解算器以确定非线性实数问题。FMCAD,2010年。
[26]
K.Ghorbal、E.Goubault和S.Putt。分区图交集的逻辑乘积方法。在CAV,2010年。
[27]
每个计算机科学家都应该了解浮点运算。ACM计算。调查。,23(1), 1991.
[28]
E.Goubault、S.Putt和F.Vedrine。利用分区图进行模块化静态分析。SAS,2012年。
[29]
L.Haller、A.Griggio、M.Brain和D.Kroening。用系统抽象确定浮点逻辑。FMCAD,2012年。
[30]
J.哈里森。使用定理证明进行浮点验证。《硬件验证的形式方法》,SFM,2006年。
[31]
F.Ivancic、M.Ganai、S.Sankaranarayanan和A.Gupta。使用软件模型检查进行浮点计算的数值稳定性分析。MEMOCODE,2010年。
[32]
B.珍妮特和A.米内。停机坪:静态分析的数值抽象域库。在CAV,2009年。
[33]
J.Jiang、W.Luk和D.Rueckert。基于FPGA的自由变形计算。2003年,FPL。
[34]
D.Jovanović和L.de Moura。求解非线性算法。在2012年和2012年国际JCAR中。
[35]
W.Kahan。对针状三角形的面积和角度的错误计算。技术报告,加州大学伯克利分校,2000年。
[36]
V.Kuznetsov、J.Kinder、S.Bucur和G.Candea。符号执行中的有效状态合并。PLDI,2012年。
[37]
K.Lakhotia、N.Tillmann、M.Harman和J.de Halleux。符号执行的FloPSy-基于搜索的浮点约束求解。在测试软件和系统中。施普林格柏林/海德堡,2010年。
[38]
X.勒罗伊。验证平方:关键软件需要验证工具吗?在POPL,2011年。
[39]
M.D.Linderman、M.Ho、D.L.Dill、T.H.Meng和G.P.Nolan。通过自动分析数值精度实现程序优化。CGO,2010年。
[40]
R.Majumdar、I.Saha和Z.Wang。控制应用的系统测试。MEMOCODE,2010年。
[41]
K.Makino和M.Berz。泰勒模型和其他经验证的函数包含方法。国际纯粹与应用数学杂志,2003年4月。
[42]
A.米内。浮点运行时错误检测的关系抽象域。在ESOP中,2004年。
[43]
R.摩尔。区间分析。普伦蒂斯·霍尔,1966年。
[44]
J.D.Murray。数学生物学。斯普林格,2002年。
[45]
M.Odersky、L.Spoon和B.Venners。Scala编程:一个全面的分步指南。Artima公司,2008年。
[46]
G.Paganelli和W.Ahrendt。使用SMT求解,通过提高精度验证浮点程序的(In)稳定性。2013年,SYNASC。
[47]
O.Ponsini、C.Michel和M.Rueher。使用约束编程技术改进基于抽象解释的价值分析。CP,2012年。
[48]
A.Quarteroni、F.Saleri和P.Gervasio。利用MATLAB和倍频程进行科学计算。施普林格,第三版,2010年。
[49]
P.Rümmer和T.Wahl。二进制浮点算法的SMT-LIB理论。2010年FLoC SMT非正式会议记录。
[50]
N.Scott、F.Jézéquel、C.Denis和J.-M.Chesneaux。科学代码的数字“健康检查”:CADNA方法。计算机物理通信,2007年。
[51]
I.C.协会。IEEE浮点运算标准。IEEE标准754-2008,2008。
[52]
E.Tang,E.Barr,X.Li和Z.Su。用于浮点程序(in)稳定性统计分析的扰动数值计算。ISSTA,2010年。
[53]
E.M.Westbrook和S.Chaudhuri。近似程序转换的语义。CoRR,2013年。
[54]
C.伍德福德和C.菲利普斯。《数值方法与实例》,第2卷。施普林格,2012年。

引用人

查看全部
  • (2023)算法1029:封装错误,评估浮点精度的直接方法ACM数学软件汇刊10.1145/354920548:4(1-16)在线发布日期:2023年3月22日
  • (2020)使用符号资源估计启用具有准确性意识的Quantum编译器美国计算机学会程序设计语言会议录10.1145/34281984:OOPSLA公司(1-26)在线发布日期:2020年11月13日
  • (2019)下沉点2019年下一代算术会议记录10.1145/3316279.3316283(1-8)在线发布日期:2019年3月13日
  • 显示更多引用者

建议

评论

信息和贡献者

问询处

发布于

封面图片ACM SIGPLAN注意事项
ACM SIGPLAN通知 第49卷第1期
2014年流行音乐
2014年1月
661页
国际标准编号:0362-1340
EISSN公司:1558-1160
内政部:10.1145/2578855
期刊目录
  • 封面图片ACM会议
    POPL’14:第41届ACM SIGPLAN-SIGACT编程语言原理研讨会会议记录
    2014年1月
    702页
    十亿英镑:9781450325448
    内政部:10.1145/2535838
如果复制品不是为了盈利或商业利益而制作或分发的,并且复制品的第一页载有本通知和完整引文,则允许免费制作本作品的全部或部分数字或硬拷贝以供个人或课堂使用。必须尊重ACM以外的其他人对本作品组成部分的版权。允许用信用证进行摘要。要以其他方式复制或重新发布、在服务器上发布或重新分发到列表,需要事先获得特定许可和/或收取费用。从请求权限[电子邮件保护]

出版商

计算机协会

美国纽约州纽约市

出版历史

出版:2014年1月8日
在SIGPLAN中发布体积49,问题1

检查更新

作者标记

  1. 汇编
  2. 嵌入式系统
  3. 定点算法
  4. 浮点运算
  5. 数值近似
  6. 舍入误差
  7. 科学计算
  8. 敏感性分析
  9. 验证

限定符

  • 研究文章

贡献者

其他指标

文献计量学和引文

文献计量学

文章指标

  • 下载次数(过去12个月)35
  • 下载次数(最近6周)2
反映截至2024年9月17日的下载量

其他指标

引文

引用人

查看全部
  • (2023)算法1029:封装错误,评估浮点精度的直接方法ACM数学软件汇刊10.1145/354920548:4(1-16)在线发布日期:2023年3月22日
  • (2020)使用符号资源估计启用具有准确性意识的Quantum编译器美国计算机学会程序设计语言会议录10.1145/34281984:OOPSLA公司(1-26)在线发布日期:2020年11月13日
  • (2019)下沉点2019年下一代算术会议记录10.1145/3316279.3316283(1-8)在线发布日期:2019年3月13日
  • (2018)自适应高性能计算、网络、存储和分析国际会议记录10.5555/3291656.3291720(1-13)在线发布日期:2018年11月11日
  • (2018)自适应高性能计算、网络、存储和分析国际会议记录10.1109/SC.2018.00051(1-13)在线发布日期:2018年11月11日
  • (2017)线性控制器有限精度实现的自动验证第23届系统构建和分析工具和算法国际会议论文集,第一部分,第10205卷10.1007/978-3-662-54577-5_9(153-169)在线发布日期:2017年4月22日
  • (2016)救生衣:在LLVM中验证精确的浮点优化第五届ACM SIGPLAN程序分析最新技术国际研讨会会议记录10.1145/2931021.2931024(24-29)在线发布日期:2016年6月14日
  • (2024)数值引信:一种舍入误差分析系统美国计算机学会程序设计语言会议录10.1145/36564568:PLDI(1954-1978)在线发布日期:2024年6月20日
  • (2024)SMT理论套利:使用有界理论逼近无界约束美国计算机学会程序设计语言会议录10.1145/36563878:PLDI(246-271)在线发布日期:2024年6月20日
  • (2024)Arfa:一种基于体制的舍入误差浮点优化方法第33届ACM SIGSOFT软件测试与分析国际研讨会论文集10.1145/3650212.3680378(1516-1528)在线发布日期:2024年9月11日
  • 显示更多引用者

视图选项

获取访问权限

登录选项

完全访问权限

查看选项

PDF格式

以PDF文件查看或下载。

PDF格式

电子阅读器

使用联机查看电子阅读器.

电子阅读器

媒体

数字

其他

桌子

分享

分享

共享此出版物链接

在社交媒体上分享