A Program Logic for First-Order Encapsulated WebAssembly

Conrad Watt, P. Maksimovic, N. Krishnaswami, Philippa Gardner
{"title":"A Program Logic for First-Order Encapsulated WebAssembly","authors":"Conrad Watt, P. Maksimovic, N. Krishnaswami, Philippa Gardner","doi":"10.4230/LIPICS.ECOOP.2019.9","DOIUrl":null,"url":null,"abstract":"We introduce Wasm Logic, a sound program logic for first-order, encapsulated WebAssembly. We design a novel assertion syntax, tailored to WebAssembly's stack-based semantics and the strong guarantees given by WebAssembly's type system, and show how to adapt the standard separation logic triple and proof rules in a principled way to capture WebAssembly's uncommon structured control flow. Using Wasm Logic, we specify and verify a simple WebAssembly B-tree library, giving abstract specifications independent of the underlying implementation. We mechanise Wasm Logic and its soundness proof in full in Isabelle/HOL. As part of the soundness proof, we formalise and fully mechanise a novel, big-step semantics of WebAssembly, which we prove equivalent, up to transitive closure, to the original WebAssembly small-step semantics. Wasm Logic is the first program logic for WebAssembly, and represents a first step towards the creation of static analysis tools for WebAssembly.","PeriodicalId":172012,"journal":{"name":"European Conference on Object-Oriented Programming","volume":"16 1","pages":"0"},"PeriodicalIF":0.0000,"publicationDate":"2018-11-08","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":"9","resultStr":null,"platform":"Semanticscholar","paperid":null,"PeriodicalName":"European Conference on Object-Oriented Programming","FirstCategoryId":"1085","ListUrlMain":"https://doi.org/10.4230/LIPICS.ECOOP.2019.9","RegionNum":0,"RegionCategory":null,"ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"","JCRName":"","Score":null,"Total":0}
引用次数: 9

Abstract

We introduce Wasm Logic, a sound program logic for first-order, encapsulated WebAssembly. We design a novel assertion syntax, tailored to WebAssembly's stack-based semantics and the strong guarantees given by WebAssembly's type system, and show how to adapt the standard separation logic triple and proof rules in a principled way to capture WebAssembly's uncommon structured control flow. Using Wasm Logic, we specify and verify a simple WebAssembly B-tree library, giving abstract specifications independent of the underlying implementation. We mechanise Wasm Logic and its soundness proof in full in Isabelle/HOL. As part of the soundness proof, we formalise and fully mechanise a novel, big-step semantics of WebAssembly, which we prove equivalent, up to transitive closure, to the original WebAssembly small-step semantics. Wasm Logic is the first program logic for WebAssembly, and represents a first step towards the creation of static analysis tools for WebAssembly.
一阶封装WebAssembly的程序逻辑
我们介绍了Wasm逻辑,一种用于一阶封装WebAssembly的可靠程序逻辑。我们设计了一种新的断言语法,针对WebAssembly基于堆栈的语义和WebAssembly类型系统提供的强保证进行了定制,并展示了如何以一种有原则的方式适应标准的分离逻辑三重和证明规则,以捕获WebAssembly不常见的结构化控制流。使用Wasm Logic,我们指定并验证了一个简单的WebAssembly b树库,给出了独立于底层实现的抽象规范。我们在Isabelle/HOL中机械化Wasm Logic及其可靠性证明。作为可靠性证明的一部分,我们形式化并完全机械化了WebAssembly的一个新颖的、大步骤的语义,我们证明了它与原始的WebAssembly小步骤语义是等价的,直到传递闭包。Wasm Logic是WebAssembly的第一个程序逻辑,它代表了为WebAssembly创建静态分析工具的第一步。
本文章由计算机程序翻译,如有差异,请以英文原文为准。
求助全文
约1分钟内获得全文 求助全文
来源期刊
自引率
0.00%
发文量
0
×
引用
GB/T 7714-2015
复制
MLA
复制
APA
复制
导出至
BibTeX EndNote RefMan NoteFirst NoteExpress
×
提示
您的信息不完整,为了账户安全,请先补充。
现在去补充
×
提示
您因"违规操作"
具体请查看互助需知
我知道了
×
提示
确定
请完成安全验证×
copy
已复制链接
快去分享给好友吧!
我知道了
右上角分享
点击右上角分享
0
联系我们:info@booksci.cn Book学术提供免费学术资源搜索服务,方便国内外学者检索中英文文献。致力于提供最便捷和优质的服务体验。 Copyright © 2023 布克学术 All rights reserved.
京ICP备2023020795号-1
ghs 京公网安备 11010802042870号
Book学术文献互助
Book学术文献互助群
群 号:604180095
Book学术官方微信