The Racket virtual machine and randomized testing

Casey Klein*, Matthew Flatt, Robert Findler

*Corresponding author for this work

Research output: Contribution to journalArticlepeer-review

2 Scopus citations


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 languageEnglish (US)
Pages (from-to)209-253
Number of pages45
JournalHigher-Order and Symbolic Computation
Issue number2-4
StatePublished - Dec 2012


  • Bytecode verification
  • Formal models
  • Randomized testing

ASJC Scopus subject areas

  • Software
  • Computer Science Applications

Fingerprint Dive into the research topics of 'The Racket virtual machine and randomized testing'. Together they form a unique fingerprint.

Cite this