Adventures in Mechanising and Verifying WebAssembly
Conrad Watt
University of Cambridge, UK
Formal Methods Meets JavaScript, VeTSS
Conrad Watt (Cambridge, UK) Mechanising WebAssembly VeTSS 1 / 21
Adventures in Mechanising and Verifying WebAssembly Conrad Watt - - PowerPoint PPT Presentation
Adventures in Mechanising and Verifying WebAssembly Conrad Watt University of Cambridge, UK Formal Methods Meets JavaScript, VeTSS Conrad Watt (Cambridge, UK) Mechanising WebAssembly VeTSS 1 / 21 The webs evolution We want richer web
University of Cambridge, UK
Conrad Watt (Cambridge, UK) Mechanising WebAssembly VeTSS 1 / 21
http://www.cl.cam.ac.uk/∼pes20/
Conrad Watt (Cambridge, UK) Mechanising WebAssembly VeTSS 2 / 21
https://github.com/evanw/webgl-water
Conrad Watt (Cambridge, UK) Mechanising WebAssembly VeTSS 3 / 21
Conrad Watt (Cambridge, UK) Mechanising WebAssembly VeTSS 4 / 21
Conrad Watt (Cambridge, UK) Mechanising WebAssembly VeTSS 5 / 21
loop i32.const 4 i32.const 2 i32.const 1 i32.add i32.add br 0 end
label{...} i32.const 4 i32.const 3 i32.add br 0 end
label{...} i32.const 7 br 0 end
loop i32.const 4 i32.const 2 i32.const 1 i32.add i32.add br 0 end
Conrad Watt (Cambridge, UK) Mechanising WebAssembly VeTSS 6 / 21
Conrad Watt (Cambridge, UK) Mechanising WebAssembly VeTSS 7 / 21
Conrad Watt (Cambridge, UK) Mechanising WebAssembly VeTSS 8 / 21
1Andreas Haas et al. “Bringing the Web Up to Speed with WebAssembly”.
In: Proceedings of the 38th ACM SIGPLAN Conference on Programming Language Design and Implementation. PLDI 2017. New York, NY, USA: ACM, 2017, pp. 185–200.
Conrad Watt (Cambridge, UK) Mechanising WebAssembly VeTSS 9 / 21
Conrad Watt (Cambridge, UK) Mechanising WebAssembly VeTSS 10 / 21
2Andreas Rossberg. [spec] Fix and clean up invariants for host functions.
Sept.
Conrad Watt (Cambridge, UK) Mechanising WebAssembly VeTSS 11 / 21
Conrad Watt (Cambridge, UK) Mechanising WebAssembly VeTSS 12 / 21
Normative specification Mechanised specification Proven properties Conformance tests
Conrad Watt (Cambridge, UK) Mechanising WebAssembly VeTSS 13 / 21
Normative specification Mechanised executable specification Extracted implementation (+untrusted interface) Proven properties Conformance tests
Conrad Watt (Cambridge, UK) Mechanising WebAssembly VeTSS 14 / 21
Normative specification Mechanised specification Proven properties Conformance tests
Conrad Watt (Cambridge, UK) Mechanising WebAssembly VeTSS 15 / 21
Normative specification Mechanised specification Proven properties Conformance tests Verified implementation
Conrad Watt (Cambridge, UK) Mechanising WebAssembly VeTSS 16 / 21
Normative specification Mechanised specification Proven properties Verified implementation Extracted implementation (+untrusted interface) Conformance tests
Conrad Watt (Cambridge, UK) Mechanising WebAssembly VeTSS 17 / 21
Conrad Watt (Cambridge, UK) Mechanising WebAssembly VeTSS 18 / 21
Conrad Watt (Cambridge, UK) Mechanising WebAssembly VeTSS 19 / 21
3Conrad Watt. Normative: Strengthen Atomics.wait/wake synchronization to the
level of other Atomics operations.
https://github.com/tc39/ecma262/pull/1127.
Conrad Watt (Cambridge, UK) Mechanising WebAssembly VeTSS 20 / 21
Conrad Watt (Cambridge, UK) Mechanising WebAssembly VeTSS 21 / 21