SPLASH 2019 (series) / VMIL 2019 (series) / VMIL 2019 /
Formal Verification of JIT by Symbolic Execution
This work-in-progress report presents ongoing experiments relating to formal verification of JIT compilers for language VMs. The native CPU code of the VM — which consists of statically-known code and variable output of the JIT — is executed in a symbolic simulation engine. This simulation yields identities that hold over the total range of inputs (or disproves them by providing a counterexample).
One obstacle we had to overcome, is executing CPU code which is itself symbolic, i.e. given as formulae over input variables. To solve this problem, we designed a new ISA-agnostic translator from ISA-specific binary machine language into an intermediate language which can be directly simulated by the symbolic engine.
Tue 22 OctDisplayed time zone: Beirut change
Tue 22 Oct
Displayed time zone: Beirut change
11:00 - 12:30 | |||
11:00 30mFull-paper | Which of my Transient Type Checks are not (Almost) Free? VMIL Isaac Oscar Gariano Victoria University of Wellington, Richard Roberts Victoria University of Wellington, Stefan Marr University of Kent, Michael Homer Victoria University of Wellington, James Noble Victoria University of Wellington | ||
11:30 30mFull-paper | Efficient Fail-Fast Dynamic Subtype Checking VMIL Pre-print | ||
12:00 15mTalk | Towards Gradual Checking of Reference Capabilities VMIL Kiko Fernandez-Reyes Uppsala University, Isaac Oscar Gariano Victoria University of Wellington, James Noble Victoria University of Wellington, Tobias Wrigstad Uppsala University Pre-print | ||
12:15 15mTalk | Formal Verification of JIT by Symbolic Execution VMIL Boris Shingarov LabWare |