skip to main content
research-article

Experience report: applying random testing to a base type environment

Published: 25 September 2013 Publication History

Abstract

As programmers, programming in typed languages increases our confidence in the correctness of our programs. As type system designers, soundness proofs increase our confidence in the correctness of our type systems. There is more to typed languages than their typing rules, however. To be usable, a typed language needs to provide a well-furnished standard library and to specify types for its exports.
As software artifacts, these base type environments can rival typecheckers in complexity. Our experience with the Typed Racket base environment---which accounts for 31% of the code in the Typed Racket implementation---teaches us that writing type environments can be just as error-prone as writing typecheckers.
We report on our experience over the past two years of using random testing to increase our confidence in the correctness of the Typed Racket base environment.

References

[1]
Stefan Berghofer and Tobias Nipkow. Random testing in Isabelle/HOL. In Proc. Conf. on Software Engineering and Formal Methods, pp. 230--239, 2004.
[2]
Koen Claessen and John Hughes. QuickCheck: a lightweight tool for random testing of Haskell programs. In Proc. International Conf. on Functional Programming, pp. 268--279, 2000.
[3]
Robert DeLine and Manuel Fähndrich. Enforcing high-level protocols in low-level software. In Proc. Conf. on Programming Language Design and Implementation, pp. 59--69, 2001.
[4]
Matthias Felleisen, Robert Bruce Findler, and Matthew Flatt. Semantics Engineering with PLT Redex. MIT Press, 2009.
[5]
Matthew Flatt and PLT. Reference: Racket. PLT Inc., PLT-TR-2010-1, 2010. http://racket-lang.org/tr1/
[6]
C. Barry Jay. Programming in FISh. International Journal on Software Tools for Technology Transfer 2(3), pp. 307--315, 1999.
[7]
Casey Klein, John Clements, Christos Dimoulas, Carl Eastlund, Matthias Felleisen, Matthew Flatt, Jay McCarthy, Jon Rafkind, Sam Tobin-Hochstadt, and Robert Bruce Findler. Run your research: on the effectiveness of lightweight mechanization. In Proc. Symp. on Principles of Programming Languages, pp. 285--296, 2012.
[8]
Casey Klein and Robert Bruce Findler. Randomized testing in PLT Redex. In Proc.Works. Scheme and Functional Programming, pp. 26--36, 2010.
[9]
Casey Klein, Matthew Flatt, and Robert Bruce Findler. The Racket virtual machine and randomized testing. Higher-Order and Symbolic Computation, 2013.
[10]
Lindsey Kuper and Ryan Newton. A lattice-theoretical approach to deterministic parallelism with shared state. Indiana University, TR702, 2012.
[11]
Rex Page, Carl Eastlund, and Matthias Felleisen. Functional programming and theorem proving for undergraduates: a progress report. In Proc. Works. Functional and Declarative Programming in Education, pp. 21--30, 2008.
[12]
Vincent St-Amour, Sam Tobin-Hochstadt, Matthew Flatt, and Matthias Felleisen. Typing the numeric tower. In Proc. Practical Aspects of Declarative Languages, pp. 289--303, 2012.
[13]
Sam Tobin-Hochstadt and Matthias Felleisen. The design and implementation of Typed Scheme. In Proc. Symp. on Principles of Programming Languages, pp. 395--406, 2008.
[14]
Jesse A. Tov and Riccardo Pucella. Practical affine types. In Proc. Symp. on Principles of Programming Languages, pp. 447--458, 2011.

Cited By

View all

Recommendations

Comments

Information & Contributors

Information

Published In

cover image ACM SIGPLAN Notices
ACM SIGPLAN Notices  Volume 48, Issue 9
ICFP '13
September 2013
457 pages
ISSN:0362-1340
EISSN:1558-1160
DOI:10.1145/2544174
Issue’s Table of Contents
  • cover image ACM Conferences
    ICFP '13: Proceedings of the 18th ACM SIGPLAN international conference on Functional programming
    September 2013
    484 pages
    ISBN:9781450323260
    DOI:10.1145/2500365
Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than the author(s) must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected].

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 25 September 2013
Published in SIGPLAN Volume 48, Issue 9

Check for updates

Author Tags

  1. numeric towers
  2. random testing
  3. type environments

Qualifiers

  • Research-article

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)2
  • Downloads (Last 6 weeks)1
Reflects downloads up to 14 Sep 2024

Other Metrics

Citations

Cited By

View all

View Options

Get Access

Login options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Media

Figures

Other

Tables

Share

Share

Share this Publication link

Share on social media