Higher-Order and Symbolic Computation

, Volume 25, Issue 2, pp 209–253

The Racket virtual machine and randomized testing

  • Casey Klein
  • Matthew Flatt
  • Robert Bruce Findler
Article

DOI: 10.1007/s10990-013-9091-1

Cite this article as:
Klein, C., Flatt, M. & Findler, R.B. Higher-Order Symb Comput (2012) 25: 209. doi:10.1007/s10990-013-9091-1
  • 164 Downloads

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.

Keywords

Formal modelsRandomized testingBytecode verification

Copyright information

© Springer Science+Business Media New York 2013

Authors and Affiliations

  • Casey Klein
    • 1
  • Matthew Flatt
    • 2
  • Robert Bruce Findler
    • 1
  1. 1.Electrical Engineering and Computer Science DepartmentNorthwestern UniversityEvanstonUSA
  2. 2.School of ComputingUniversity of UtahSalt Lake CityUSA