Abstract
We present a PLT Redex model of a substantial portion of the Racket virtual machine and bytecode verifier (formerly known as MzScheme), along with lessons learned in developing the model. Inspired by the “warts-and-all” approach of the VLISP project, in which Wand et al. produced a verified implementation of Scheme, our model reflects many of the realities of a production system. Our methodology departs from the VLISP project’s in its approach to validation; instead of producing a proof of correctness, we explore the use of QuickCheck-style randomized testing, finding it a cheap and effective technique for discovering a variety of errors in the model—from simple typos to more fundamental design mistakes.
Original language | English (US) |
---|---|
Pages (from-to) | 209-253 |
Number of pages | 45 |
Journal | Higher-Order and Symbolic Computation |
Volume | 25 |
Issue number | 2-4 |
DOIs | |
State | Published - Dec 2012 |
Keywords
- Bytecode verification
- Formal models
- Randomized testing
ASJC Scopus subject areas
- Software
- Computer Science Applications