Javascript must be enabled to continue!
Progressful Interpreters for Efficient WebAssembly Mechanisation
View through CrossRef
Mechanisations of programming language specifications are now increasingly common, providing machine-checked modelling of the specification and verification of desired properties such as type safety. However it is challenging to maintain these mechanisations, particularly in the face of an evolving specification. Existing mechanisations of the W3C WebAssembly (Wasm) standard have so far been able to keep pace as the standard evolves, helped enormously by the W3C Wasm standard’s choice to state the language’s semantics in terms of a fully formal specification. However a substantial incoming extension to Wasm, the 2.0 feature set, motivates the investigation of strategies for more efficient production of the core verification artefacts currently associated with the WasmCert-Coq mechanisation of Wasm.
In the classic formalisation of a typed operational semantics as followed by the W3C Wasm standard, both the type system and runtime operational semantics are defined as inductive relations, with associated type soundness properties (progress and preservation) and an independent sound interpreter. We investigate two more efficient strategies for producing these artefacts, which are currently all separately defined by WasmCert-Coq. First, the approach of Kokke, Siek, and Wadler for deriving a sound interpreter from a constructive progress proof — we show that this approach scales to the W3C Wasm 1.0 standard, but results in an inefficient interpreter in our setting. Second, inspired by results from intrinsically-typed languages, we define a progressful interpreter which uses Coq’s dependent types to certify not only its own soundness, but also the progress property. We show that this interpreter can implement several performance optimisations while maintaining these certifications, which are fully erasable when the interpreter is extracted from Coq. Using this approach, we extend the WasmCert-Coq mechanisation to the significantly larger Wasm 2.0 feature set, discovering and correcting several errors in the expanded specification’s type system.
Association for Computing Machinery (ACM)
Title: Progressful Interpreters for Efficient WebAssembly Mechanisation
Description:
Mechanisations of programming language specifications are now increasingly common, providing machine-checked modelling of the specification and verification of desired properties such as type safety.
However it is challenging to maintain these mechanisations, particularly in the face of an evolving specification.
Existing mechanisations of the W3C WebAssembly (Wasm) standard have so far been able to keep pace as the standard evolves, helped enormously by the W3C Wasm standard’s choice to state the language’s semantics in terms of a fully formal specification.
However a substantial incoming extension to Wasm, the 2.
0 feature set, motivates the investigation of strategies for more efficient production of the core verification artefacts currently associated with the WasmCert-Coq mechanisation of Wasm.
In the classic formalisation of a typed operational semantics as followed by the W3C Wasm standard, both the type system and runtime operational semantics are defined as inductive relations, with associated type soundness properties (progress and preservation) and an independent sound interpreter.
We investigate two more efficient strategies for producing these artefacts, which are currently all separately defined by WasmCert-Coq.
First, the approach of Kokke, Siek, and Wadler for deriving a sound interpreter from a constructive progress proof — we show that this approach scales to the W3C Wasm 1.
0 standard, but results in an inefficient interpreter in our setting.
Second, inspired by results from intrinsically-typed languages, we define a progressful interpreter which uses Coq’s dependent types to certify not only its own soundness, but also the progress property.
We show that this interpreter can implement several performance optimisations while maintaining these certifications, which are fully erasable when the interpreter is extracted from Coq.
Using this approach, we extend the WasmCert-Coq mechanisation to the significantly larger Wasm 2.
0 feature set, discovering and correcting several errors in the expanded specification’s type system.
Related Results
Interpreters in Our Midst
Interpreters in Our Midst
When deaf people work in professional environments and participate in public events, we are often accompanied by sign language interpreters. This usually means wonderfully enhanced...
WebAssembly (Wasm) for Legal Professionals: Exploring Current Parameters in License Compliance
WebAssembly (Wasm) for Legal Professionals: Exploring Current Parameters in License Compliance
WebAssembly is a technology currently gaining traction. However, documentation for WebAssembly on the Internet primarily targets developers and focuses on how to use it, or develop...
An Empirical Evaluation of Static, Dynamic, and Hybrid Slicing of Webassembly Binaries
An Empirical Evaluation of Static, Dynamic, and Hybrid Slicing of Webassembly Binaries
The WebAssembly standard aims to form a portable compilation target, enabling the cross-platform distribution of programs written in a variety of languages. This paper introduces a...
Interpreting Impoliteness: Interpreters’ Voices
Interpreting Impoliteness: Interpreters’ Voices
Interpreters in the public sector in Norway interpret in a variety of institutional encounters, and the interpreters evaluate the majority of these encounters as polite. However, s...
Characteristics of the Levels of Mechanisation in Arc Welding
Characteristics of the Levels of Mechanisation in Arc Welding
Abstract
Improvement of quality, reduction of the subjective possibilities of faults may be facilitated with the help of the technically rational and economically ju...
Social Work with Interpreters
Social Work with Interpreters
Social workers help very culturally diverse populations. Therefore social workers are likely to work with language interpreters in various settings such as mental health agencies, ...
Kazakhstani Simultaneous Interpreters’ Perceptions Concerning Interpretation Techniques and Tools
Kazakhstani Simultaneous Interpreters’ Perceptions Concerning Interpretation Techniques and Tools
This study examines the key issues of simultaneous interpretation from the practitioners’ viewpoint. It is framed within the context of interpreters’ competences and the main tools...
The Role of Court Interpreters Under the Attitude of Appraisal Theory Case Study on Sun Yang’s Public Hearing
The Role of Court Interpreters Under the Attitude of Appraisal Theory Case Study on Sun Yang’s Public Hearing
The role of interpreters standing as a controversial topic has aroused unquiet debates in academia of interpreting studies. Traditional interpreting studies emphasize faithfulness ...

