Typing the numeric tower

  • Authors:
  • Vincent St-Amour;Sam Tobin-Hochstadt;Matthew Flatt;Matthias Felleisen

  • Affiliations:
  • Northeastern University;Northeastern University;University of Utah;Northeastern University

  • Venue:
  • PADL'12 Proceedings of the 14th international conference on Practical Aspects of Declarative Languages
  • Year:
  • 2012

Quantified Score

Hi-index 0.00

Visualization

Abstract

In the past, the creators of numerical programs had to choose between simple expression of mathematical formulas and static type checking. While the Lisp family and its dynamically typed relatives support the straightforward expression via a rich numeric tower, existing statically typed languages force programmers to pollute textbook formulas with explicit coercions or unwieldy notation. In this paper, we demonstrate how the type system of Typed Racket accommodates both a textbook programming style and expressive static checking. The type system provides a hierarchy of numeric types that can be freely mixed as well as precise specifications of sign, representation, and range information--all while supporting generic operations. In addition, the type system provides information to the compiler so that it can perform standard numeric optimizations.