Run your research: on the effectiveness of lightweight mechanization

  • Authors:
  • Casey Klein;John Clements;Christos Dimoulas;Carl Eastlund;Matthias Felleisen;Matthew Flatt;Jay A. McCarthy;Jon Rafkind;Sam Tobin-Hochstadt;Robert Bruce Findler

  • Affiliations:
  • Northwestern University & PLT, Evanston, IL, USA;California Polytechnic State University & PLT, San Luis Obispo & PLT, CA, USA;Northeastern University & PLT, Boston, MA, USA;Northeastern University & PLT, Boston, MA, USA;Northeastern University & PLT, Boston, MA, USA;University of Utah & PLT, Salt Lake City, UT, USA;Brigham Young University & PLT, Provo, UT, USA;University of Utah & PLT, Salt Lake City, UT, USA;Northeastern University & PLT, Boston, MA, USA;Northwestern University, Evanston, IL, USA

  • Venue:
  • POPL '12 Proceedings of the 39th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages
  • Year:
  • 2012

Quantified Score

Hi-index 0.00

Visualization

Abstract

Formal models serve in many roles in the programming language community. In its primary role, a model communicates the idea of a language design; the architecture of a language tool; or the essence of a program analysis. No matter which role it plays, however, a faulty model doesn't serve its purpose. One way to eliminate flaws from a model is to write it down in a mechanized formal language. It is then possible to state theorems about the model, to prove them, and to check the proofs. Over the past nine years, PLT has developed and explored a lightweight version of this approach, dubbed Redex. In a nutshell, Redex is a domain-specific language for semantic models that is embedded in the Racket programming language. The effort of creating a model in Redex is often no more burdensome than typesetting it with LaTeX; the difference is that Redex comes with tools for the semantics engineering life cycle.