Typing the numeric tower

Vincent St-Amour*, Sam Tobin-Hochstadt, Matthew Flatt, Matthias Felleisen

*Corresponding author for this work

Research output: Chapter in Book/Report/Conference proceedingConference contribution

10 Scopus citations

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.

Original languageEnglish (US)
Title of host publicationPractical Aspects of Declarative Languages - 14th International Symposium, PADL 2012, Proceedings
Pages289-303
Number of pages15
DOIs
StatePublished - Feb 21 2012
Event14th International Symposium on Practical Aspects of Declarative Languages, PADL 2012 - Philadelphia, PA, United States
Duration: Jan 23 2012Jan 24 2012

Publication series

NameLecture Notes in Computer Science (including subseries Lecture Notes in Artificial Intelligence and Lecture Notes in Bioinformatics)
Volume7149 LNCS
ISSN (Print)0302-9743
ISSN (Electronic)1611-3349

Other

Other14th International Symposium on Practical Aspects of Declarative Languages, PADL 2012
CountryUnited States
CityPhiladelphia, PA
Period1/23/121/24/12

ASJC Scopus subject areas

  • Theoretical Computer Science
  • Computer Science(all)

Fingerprint Dive into the research topics of 'Typing the numeric tower'. Together they form a unique fingerprint.

Cite this