Mixing transformation and symbolic execution with continuation for WebAssembly
WebAssembly is a modern low-level intermediate representation (IR) and a popular compilation target. The official specification of WebAssembly provides a small-step reduction semantics. Unlike other common low-level IRs, WebAssembly provides structured control-flow constructs, whose reduction rules are complicated by additional “administrative instructions” in the reference semantics. In light of Danvy’s functional correspondence constructed through defunctionalization and refunctionalization, I will present an alternative natural semantics for WebAssembly in continuation-passing style (CPS), which can be implemented as a concise, compositional, and tail-recursive definitional interpreter. Using continuations from the meta-language streamlines the semantics by eliminating the need for additional administrative instructions.
I will further talk about the application of such a CPS semantics for efficient test case generation of WebAssembly. We first derive a symbolic execution semantics of WebAssembly in CPS, then obtain a compiler from that by staging, where the generated code performs test case generation. Since our CPS semantics are compositional, they are amenable to two-level programming such as partial evaluation or staging. Therefore, we mix transformation and symbolic execution along with continuation for efficient test case generation of WebAssembly.
Tue 14 OctDisplayed time zone: Perth change
16:00 - 17:45 | Analyze ThisOlivierFest at Peony West Chair(s): Jens Palsberg University of California, Los Angeles (UCLA) | ||
16:00 25mTalk | On the Structure of Abstract Interpretersfestschrift OlivierFest Wonyeol Lee POSTECH, Matthieu Lemerre Université Paris-Saclay - CEA List, Xavier Rival Inria - CNRS - Ecole Normale Superieure de Paris - PSL University, Hongseok Yang KAIST DOI | ||
16:25 25mTalk | Understanding Linux Kernel Code through Formal Verification: A Case Study of the Task-Scheduler Function select_idle_corefestschrift OlivierFest DOI | ||
16:50 25mTalk | Simple Closure Analysis Revisitedfestschrift OlivierFest Fritz Henglein University of Copenhagen DOI | ||
17:15 15mTalk | Mixing transformation and symbolic execution with continuation for WebAssembly OlivierFest Guannan Wei Tufts University | ||
17:30 15mTalk | Data-Centric Functional Programming with First-Class Finite Maps and Tabulated Abstractions OlivierFest Tiark Rompf Purdue University | ||
