文件Open Access徽标

一阶封装WebAssembly的程序逻辑

作者 康拉德·瓦特, 彼得·马克西莫维奇, Neelakantan R.克里希纳斯瓦米, 菲利普·加德纳



PDF格式
缩略图PDF

文件

LIPIcs公司。ECOOP.2019.9.pdf
  • 文件大小:0.74 MB
  • 30页

文件标识符

作者详细信息

康拉德·瓦特
  • 英国剑桥大学
彼得·马克西莫维奇
  • 英国伦敦帝国理工学院
  • 塞尔维亚SASA数学研究所
Neelakantan R.克里希纳斯瓦米
  • 英国剑桥大学
菲利普·加德纳
  • 英国伦敦帝国理工学院

致谢

我们要感谢审稿人,他们的评论对改进论文很有价值。所有作者都得到了EPSRC计划拨款“REMS:主流系统的严格工程”(EP/K008528/1)的支持。此外:瓦特还获得了EPSRC DTP奖(EP/N509620/1);马克西莫维奇得到塞尔维亚教育和科学部通过SASA数学研究所ON174026和III44006项目的支持;Krishnaswami得到了EPSRC项目拨款“交互式程序的语义基础”(EP/N02706X/2)的支持;加德纳得到了EPSRC研究金“VeTSpec:经验证的可信软件规范”(EP/R034567/1)的支持。

引用为获取BibTex

Conrad Watt、Petar Maksimović、Neelakantan R.Krishnaswami和Philippa Gardner。一种用于一阶封装WebAssembly的程序逻辑。第33届欧洲面向对象编程会议(ECOOP 2019)。莱布尼茨国际信息学论文集(LIPIcs),第134卷,第9:1-9:30页,达格斯图尔-莱布尼兹-泽特鲁姆信息学研究所(2019)
https://doi.org/10.4230/LIPIcs.ECOOP.2019.9

摘要

我们介绍了Wasm Logic,这是一个用于一阶封装WebAssembly的合理程序逻辑。我们根据WebAssembly基于堆栈的语义和WebAssemply的类型系统提供的强大保证,设计了一种新颖的断言语法,并展示了如何以原则性的方式调整标准分离逻辑三元组和证明规则,以捕获WebAssemble不常见的结构化控制流。使用Wasm Logic,我们指定并验证了一个简单的WebAssembly B树库,给出了独立于底层实现的抽象规范。我们在Isabelle/HOL中充分机械化了Wasm逻辑及其稳健性证明。作为稳健性证明的一部分,我们将WebAssembly的一种新颖的大步语义形式化并完全机械化,我们证明,在传递闭包之前,它与原始的WebAssemply小步语义等价。Wasm Logic是WebAssembly的第一个程序逻辑,代表了为WebAssemply创建静态分析工具的第一步。

主题分类

ACM科目分类
  • 计算理论→分离逻辑
关键词
  • Web程序集
  • 程序逻辑
  • 分离逻辑
  • 可靠性
  • 机械化

韵律学

工具书类

  1. 费比安·班瓦特(Fabian Bannwart)和彼得·米勒(Peter Müller)。字节码的程序逻辑。电子。注释Theor。计算。科学。,141(1):255-2732005年12月。网址:http://dx.doi.org/10.1016/j.entcs.2005.02.026
  2. 比约恩·巴特尔和尼尔斯·贾尼格。低层代码的机械化合成验证。Julia M.Badger和Kristin Yvonne Rozier,NASA Formal Methods编辑,第98-112页,Cham,2014年。施普林格国际出版公司。谷歌学者
  3. 尼克·本顿。基于堆栈的抽象机的类型化合成逻辑。《第三届亚洲程序设计语言与系统会议论文集》,APLAS'05,第364-380页,柏林,海德堡,2005年。斯普林格·弗拉格。网址:http://dx.doi.org/10.1007/11575467_24
  4. 伦纳特·贝林格和马丁·霍夫曼。JML和类型的字节码逻辑。《第四届亚洲编程语言与系统会议论文集》,APLAS’06,第389-405页,柏林,海德堡,2006年。斯普林格·弗拉格。网址:网址:http://dx.doi.org/10.1007/11924661_24
  5. Lars Birkedal和Hongseok Yang。关系参数和分离逻辑。《第十届软件科学和计算结构基础国际会议论文集》,FOSSACS’07,第93-107页,柏林,海德堡,2007年。斯普林格·弗拉格。网址:http://dl.acm.org/citation.cfm?id=1760037.1760047
  6. 斯蒂芬·布鲁克斯和彼得·奥赫恩。并发分离逻辑。ACM SIGLOG新闻,3(3):47-652016年8月。网址:http://dx.doi.org/10.1145/2984450.2984457
  7. M.Clint和C.A.R.Hoare。程序证明:跳转和函数。《信息学报》,1(3):214-2241972年9月。网址:http://dx.doi.org/10.1007/BF00288686
  8. 托马斯·科尔曼(Thomas H.Cormen)、查尔斯·雷瑟森(Charles E.Leiserson)、罗纳德·里维斯特(Ronald L.Rivest)和克利福德·斯坦(Clifford Stein)。算法导论,第三版。麻省理工学院出版社,2009年第3版。谷歌学者
  9. 阿里·德布鲁因(Arie de Bruin)。Goto语句:语义和演绎系统。信息学报,15(4):385-4241981年8月。网址:http://dx.doi.org/10.1007/BF00264536
  10. Y.Dong、S.Wang、L.Zhang和P.Yang。低级中级代表计划的模块化认证。2009年7月,第33届IEEE国际计算机软件和应用年会,第1卷,第563-570页。网址:http://dx.doi.org/10.109/COMPSAC.2009.81
  11. 乔纳斯·埃希特霍夫。2014年《关于Unity网络出版的未来》。网址:https://blogs.unity3d.com/2014/04/29/on-future-of-web-publishing-in-unity/
  12. 何塞·弗拉戈索·桑托斯(JoséFragoso Santos)、彼得·马克西莫维奇(Petar Maksimović)、戴瓦·诺季涅(Daiva Naudíiániené)、托马斯·伍德(Thomas Wood)和菲利普·加德纳(Philippa Gardner)。JaVerT:JavaScript验证工具链。程序。ACM计划。Lang.,2(POPL):2017年12月50:1-50:33。网址:http://dx.doi.org/10.1145/3158138
  13. JoséFragoso Santos、Petar Maksimović、Gabriela Sampaio和Philippa Gardner。JaVerT 2.0:JavaScript的合成符号执行。程序。ACM计划。Lang.,3(POPL):2019年1月66:1-66:31。网址:http://dx.doi.org/10.1145/3290379
  14. 威廉·傅(William Fu)、雷蒙德·林(Raymond Lin)和丹尼尔·英格(Daniel Inge)。TaintAssembly:基于Taint-Based的WebAssembly信息流控制跟踪,2018年。网址:网址:http://arxiv.org/abs/arxiv:1802.01050
  15. 菲利普·安妮·加德纳(Philippa Anne Gardner)、塞尔吉奥·马菲斯(Sergio Maffeis)和加雷斯·大卫·史密斯(Gareth David Smith)。面向JavaScript的程序逻辑。2012年,美国纽约州纽约市,第39届ACM SIGPLAN-SIGACT编程语言原理年度研讨会论文集,POPL’12,第31-44页。ACM。网址:http://dx.doi.org/10.1145/203656.2103663
  16. Andreas Haas、Andreas Rossberg、Derek L.Schuff、Ben L.Titzer、Michael Holman、Dan Gohman、Luke Wagner、Alon Zakai和JF Bastien。使用WebAssembly加快Web速度。《第38届ACM SIGPLAN编程语言设计与实现会议记录》,PLDI 2017,第185-200页,美国纽约州纽约市,2017年。ACM。网址:http://dx.doi.org/10.1145/3062341.3062363
  17. 大卫·赫尔曼(David Herman)、卢克·瓦格纳(Luke Wagner)和阿隆·扎凯(Alon Zakai)。asm.js,2014年。网址:http://asmjs.org/spec/最新
  18. C.A.R.霍尔。计算机程序设计的公理化基础。公社。ACM,12(10):576-5801969年10月。网址:http://dx.doi.org/10.1145/363235.363259
  19. 玛丽克·赫斯曼(Marieke Huisman)和巴特·雅各布斯(Bart Jacobs)。通过带有突然终止的Hoare逻辑进行Java程序验证。Tom Maibaum,编辑,《软件工程的基本方法》,第284-303页,柏林,海德堡,2000年。施普林格-柏林-海德堡。谷歌学者
  20. Jonas B.Jensen、Nick Benton和Andrew Kennedy。低级代码的高级分离逻辑。第40届ACM SIGPLAN-SIGACT编程语言原理年度研讨会论文集,POPL’13,301-314页,美国纽约州纽约市,2013年。ACM。网址:http://dx.doi.org/10.1145/2429069.2429105
  21. 罗伯特·克雷伯斯、拉尔夫·荣格、阿列什·比兹亚克、雅克·亨利·乔丹、德里克·德雷尔和拉尔斯·比克达尔。高阶并发分离逻辑的本质。第26届欧洲编程语言与系统研讨会论文集-第10201卷,第696-723页,美国纽约州纽约市,2017年。Springer-Verlag纽约公司网址:http://dx.doi.org/10.1007/978-3-662-54434-1_26
  22. 内拉坎坦·R·克里希纳斯瓦米(Neelakantan R.Krishnaswami)。用高阶分离逻辑验证高阶强制程序。2011年7月,美国宾夕法尼亚州匹兹堡卡内基梅隆大学博士论文。谷歌学者
  23. 丹尼尔·莱曼和迈克尔·普拉德尔。Wasabi:动态分析WebAssembly的框架。《第二十四届编程语言和操作系统体系结构支持国际会议论文集》,ASPLOS’19,第1045-1058页,美国纽约州纽约市,2019年。ACM。网址:网址:http://dx.doi.org/10.1145/3297858.304068
  24. 蒂姆·林德霍姆(Tim Lindholm)、弗兰克·叶林(Frank Yellin)、吉拉德·布拉查(Gilad Bracha)和亚历克斯·巴克利(Alex Buckley)。Java虚拟机规范,2013年。网址:https://docs.oracle.com/javase/specs/jvms/se7/jvms7.pdf
  25. Mozilla。2014年Firefox中运行的Mozilla和Epic预览Unreal Engine 4。网址:https://blog.mozilla.org/blog/2014/03/12/mozilla-and-epic-preview-unreal-engine-4-running-in-firefox网站/
  26. 彼得·米勒和马丁·诺迪奥。具有突然终止的程序的证明转换编译。《2007年基于组件的系统规范和验证会议记录:欧洲软件工程会议第六次联席会议和ACM SIGSOFT软件工程基础研讨会》,SAVCBS’07,第39-46页,美国纽约,2007年。ACM。网址:http://dx.doi.org/10.1145/1292316.1292321
  27. 马吕斯·马斯奇(Marius Musch)、克里斯蒂安·雷森格尔(Christian Wressneger)、马丁·约翰斯(Martin Johns)和康拉德·里克(Konrad Rieck)。2018年,基于网络的野生加密劫持。网址:http://arxiv.org/abs/arxiv:1808.09474
  28. Magnus O.Myreen、Anthony C.J.Fox和Michael J.C.Gordon。ARM机器代码的Hoare逻辑。《2007年软件工程基础国际会议论文集》,FSEN'07,第272-286页,柏林,海德堡,2007年。斯普林格·弗拉格。网址:http://dl.acm.org/citation.cfm?id=1775223.1775241
  29. Magnus O.Myreen和Michael J.C.Gordon。实际建模机器代码的Hoare逻辑。《第13届系统构建和分析工具和算法国际会议论文集》,TACAS'07,第568-582页,柏林,海德堡,2007年。斯普林格·弗拉格。网址:http://dl.acm.org/citation.cfm?id=1763507.1763565
  30. 托比亚斯·尼普科。递归过程和无限不确定性的Hoare逻辑。朱利安·布拉德菲尔德,《计算机科学逻辑》编辑,第103-119页,柏林,海德堡,2002年。施普林格-柏林-海德堡。谷歌学者
  31. 马丁·诺迪奥(Martin Nordio)、彼得·米勒(Peter Müller)和伯特兰·梅耶(Bertrand Meyer)。埃菲尔程序的证明转换编译。2008年6月30日至7月4日,瑞士苏黎世,2008年欧洲工具展,第46届国际会议,《对象、组件、模型和模式》。会议记录,第316-335页,2008年。网址:http://dx.doi.org/10.1007/978-3-540-69824-1_18
  32. Peter W.O'Hearn、Hongseok Yang和John C.Reynolds。分离和信息隐藏。第31届ACM SIGPLAN-SIGACT编程语言原理研讨会会议记录,POPL'04,第268-280页,美国纽约州纽约市,2004年。ACM。网址:http://dx.doi.org/10.1145/964001.964024
  33. 大卫·冯·奥海姆。相互递归和局部变量的Hoare逻辑。《软件技术和理论计算机科学基础第19届会议论文集》,第168-180页,英国伦敦,1999年。斯普林格·弗拉格。网址:http://dl.acm.org/citation.cfm?id=646837.708364
  34. 穆罕默德·拉扎和菲利普·加德纳。局部推理中的足迹。Roberto Amadio,编辑,《软件科学与计算结构基础》,第201-215页,柏林,海德堡,2008年。施普林格-柏林-海德堡。谷歌学者
  35. 约翰·雷诺兹(John C.Reynolds)。分离逻辑:共享可变数据结构的逻辑。《第17届IEEE计算机科学逻辑年度研讨会论文集》,LICS’02,第55-74页,美国华盛顿特区,2002年。IEEE计算机学会。网址:http://dl.acm.org/citation.cfm?id=645683.664578
  36. 安德烈亚斯·罗斯伯格(Andreas Rossberg)、本·提泽尔(Ben L.Titzer)、安德烈亚斯·哈斯(Andreas-Haas)、德里克·舒夫(Derek L.Schuff)、丹·戈曼(Dan Gohman)、卢克·瓦格纳(Luke Wagner)、阿隆·扎凯(Alon Zakai)、J.F.巴斯蒂恩(J.Bastien。使用WebAssembly加快Web速度。公社。ACM,61(12):107-1152018年11月。网址:http://dx.doi.org/10.1145/3282510
  37. Ando Saabas和Tarmo Uustalu。低层语言的合成自然语义和Hoare逻辑。电子。注释Theor。计算。科学。,156(1):151-1682006年5月。网址:http://dx.doi.org/10.1016/j.entcs.2005.09.031
  38. Ando Saabas和Tarmo Uustalu。基于堆栈的低级语言的组合类型系统。第十二届计算机会议录:澳大利亚理论研讨会-第51卷,CATS’06,第27-39页,澳大利亚达林赫斯特,2006年。澳大利亚计算机学会网址:http://dl.acm.org/citation.cfm?id=2523791.2523798
  39. 菲利普·西奇科夫斯基(Filip Sieczkowski)、卡斯珀·斯文森(Kasper Svendsen)、拉尔斯·比克达尔(Lars Birkedal)和让·皮乔·普哈拉博德(Jean Pichon-Pharabod)。虚拟序列一致性的分离逻辑。《编程语言与系统》,ESOP’15,第736-761页,柏林,海德堡,2015年。施普林格-柏林-海德堡。谷歌学者
  40. 本·史密斯。2018年WebAssembly的线程方案。网址:https://github.com/WebAssembly/threads网站
  41. 阿伦·桑托(Aron Szanto)、蒂莫西·塔姆(Timothy Tamm)和阿蒂多罗·帕格诺尼(Artidoro Pagnoni)。WebAssembly的污点跟踪,2018年。网址:http://arxiv.org/abs/arxiv:1807.08349
  42. 谭刚(Gang Tan)和安德鲁(Andrew W.Appel)。控制流的组合逻辑。《第七届国际验证、模型检验和抽象解释会议论文集》,VMCAI'06,第80-94页,柏林,海德堡,2006年。斯普林格·弗拉格。网址:http://dx.doi.org/10.1007/11609773_6
  43. Viktor Vafeiadis和Chinmay Narayan。松弛分离逻辑:C11并发的程序逻辑。《2013年ACM SIGPLAN面向对象编程系统语言与应用国际会议论文集》,OOPSLA’13,第867-884页,美国纽约州纽约市,2013年。ACM。网址:http://dx.doi.org/10.1145/2509136.2509532
  44. 卡斯滕·瓦明(Carsten Varming)和拉尔斯·比克达尔(Lars Birkedal)。Isabelle/HOLCF中的高阶分离逻辑。电子。注释Theor。计算。科学。,218:371-3892008年10月。网址:http://dx.doi.org/10.1016/j.entcs.2008.10.022
  45. 王文浩、本杰明·费雷尔、徐晓阳、凯文·哈姆伦和郝爽。SEISMIC:用于中断加密插孔的SEcure内联脚本监视器。《计算机安全》编辑Javier Lopez、Jianying Zhou和Miguel Soriano,第122-142页,Cham,2018年。施普林格国际出版公司。谷歌学者
  46. 康拉德·瓦特。机械化和验证WebAssembly规范。在第七届ACM SIGPLAN认证程序和校对国际会议论文集,CPP 2018,第53-65页,美国纽约州纽约市,2018。ACM。网址:http://dx.doi.org/10.1145/3167082
  47. Conrad Watt、Petar Maksimović、Neelakantan R.Krishnaswami和Philippa Gardner。2018年第一订单封装WebAssembly的程序逻辑。网址:http://arxiv.org/abs/1811.03479
  48. Conrad Watt、John Renner、Natalie Popescu、Sunjay Cauligi和Deian Stefan。CT-wasm:用于Web生态系统的类型驱动安全加密。程序。ACM计划。Lang.,3(POPL):2019年1月77:1-77:29。网址:http://dx.doi.org/10.1145/3290390
  49. WebAssembly社区组。2018年路线图。网址:https://webassembly.org/路线图/
  50. WebAssembly社区组。WebAssembly规范,2018年。网址:https://webassembly.github.io/spec/
  51. 杨红seok。分离逻辑类型和高阶框架规则的语义。第20届IEEE计算机科学逻辑年会论文集,LICS’05,260-269页,美国华盛顿特区,2005年。IEEE计算机学会。网址:http://dx.doi.org/10.109/LICS.2005.47
  52. Bennet Yee、David Sehr、Gregory Dardyk、J Bradley Chen、Robert Muth、Tavis Ormandy、Shiki Okasaka、Neha Narula和Nicholas Fullager。本机客户端:用于可移植的、不受信任的x86本机代码的沙盒。IEEE安全与隐私研讨会论文集。IEEE计算机学会,2009年。谷歌学者
  53. 阿隆·扎凯。Emscripten:一个LLVM到JavaScript的编译器。2011年,美国纽约州纽约市,《面向对象编程系统语言和应用程序指南》,第301-312页,《ACM国际会议指南》,OOPSLA’11。ACM。网址:http://dx.doi.org/10.1145/2048147.2048224
问题/备注/反馈
X(X)

Dagstuhl出版社反馈


感谢您的反馈!

已提交反馈

无法发送消息

请稍后再试或发送电子邮件