TY - GEN
T1 - Typing the numeric tower
AU - St-Amour, Vincent
AU - Tobin-Hochstadt, Sam
AU - Flatt, Matthew
AU - Felleisen, Matthias
PY - 2012
Y1 - 2012
N2 - 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.
AB - 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.
UR - http://www.scopus.com/inward/record.url?scp=84857072623&partnerID=8YFLogxK
UR - http://www.scopus.com/inward/citedby.url?scp=84857072623&partnerID=8YFLogxK
U2 - 10.1007/978-3-642-27694-1_21
DO - 10.1007/978-3-642-27694-1_21
M3 - Conference contribution
AN - SCOPUS:84857072623
SN - 9783642276934
T3 - Lecture Notes in Computer Science (including subseries Lecture Notes in Artificial Intelligence and Lecture Notes in Bioinformatics)
SP - 289
EP - 303
BT - Practical Aspects of Declarative Languages - 14th International Symposium, PADL 2012, Proceedings
T2 - 14th International Symposium on Practical Aspects of Declarative Languages, PADL 2012
Y2 - 23 January 2012 through 24 January 2012
ER -