一句话:提出 RichWasm,一种支持安全共享内存互操作并可编译到 WebAssembly 的富类型中间语言,并在 Coq 中证明类型安全。
不同语言具有不同内存安全保证,跨语言共享内存互操作可能破坏内存安全。本文提出 RichWasm:一种基于 WebAssembly 的富类型中间语言,用作带类型的高级语言编译目标。它通过细粒度内存所有权与共享等类型特性,支持垃圾回收语言与基于所有权、手动内存管理语言之间的安全共享内存互操作。作者给出从 core ML 和带强更新的类型安全语言 L3 到 RichWasm 的编译器,并将 RichWasm 编译到普通 Wasm 以复用现有环境。RichWasm 已在 Coq 中形式化,并证明了类型安全性。
Safe, shared-memory interoperability between languageswith different type systems and memory-safety guarantees is an intricate problem as crossing language boundaries may result in memory-safety violations. In this paper, we present RichWasm, a novel richly typed intermediate language designed to serve as a compilation target for typed high-level languages with different memory-safety guarantees. RichWasm is based on WebAssemblyand enables safe shared-memory interoperability by incorporating a variety of type features that support fine-grained memory ownership and sharing. RichWasm is rich enough to serve as a typed compilation target for both typed garbage-collected languages and languages with an ownership-based type system and manually managed memory. We demonstrate this by providing compilers from core ML and L 3 , a type-safe language with strong updates, to RichWasm. RichWasm is compiled to regular Wasm, allowing for use in existing environments. We formalize RichWasm in Coq and prove type safety.
DOI 原文 · arXiv · PDF(开放获取) · DBLP
@article{FitzgibbonsPMTMA24,
title = {RichWasm: Bringing Safe, Fine-Grained, Shared-Memory Interoperability Down to WebAssembly},
author = {Michael Fitzgibbons and Zoe Paraskevopoulou and Noble Mushtak and Michelle Thalakottur and Jose Sulaiman Manzur and Amal Ahmed},
journal = {Proceedings of the ACM on Programming Languages},
volume = {8},
number = {PLDI},
year = {2024},
doi = {10.1145/3656444}
}