trivial/icfp-2016/paper.scrbl
2016-03-16 08:31:40 -04:00

54 lines
2.0 KiB
Racket

#lang scribble/sigplan @onecolumn @preprint
@(require "common.rkt")
@authorinfo["???" "???" ""]
@;@authorinfo["Ben Greenman and Stephen Chang"
@; "PLT @ Northeastern University, Boston, USA"
@; ""]
@title{Functional Pearl: Do you see what I see?}
@; @subtitle{Improving a simple type system with dependent macros}
@; @subtitle{Value-based partial evaluation}
@; @subtitle{Read-time constant folding}
@; TODO subtitle doesn't appear in the right place
@abstract{
A static type system is a compromise between precision and usability.
Improving the ability of a type system to distinguish correct and erroneous
programs typically requires that programmers restructure their code or
provide more type annotations, neither of which are desirable tasks.
This pearl presents an elaboration-based technique for refining the
analysis of an existing type system on existing code
without changing the type system.
We have implemented the technique as a Typed Racket library.
From the programmers' viewpoint, simply importing the library makes the type
system more perceptive---no annotations or new syntax required.
}
@;@category["D.3.3" "Programming Languages" "Language Constructs and Features"]
@;@terms{Performance, Experimentation, Measurement}
@;@keywords{Gradual typing, performance evaluation}
@include-section{intro.scrbl}
@include-section{solution.scrbl}
@include-section{usage.scrbl}
@include-section{experience.scrbl} @; Merge with usage?
@include-section{implementation.scrbl}
@include-section{conclusion.scrbl}
@section[#:style 'unnumbered]{Acknowledgments}
To appear
@;We thank
@;Sam Tobin-Hochstadt for reminding us that Typed Racket is macro-extensible,
@;Ryan Culpepper for divulging secrets of the Racket macro system,
@;Asumu Takikawa and Leif Andersen for rejecting some earlier designs,
@;Matthias Felleisen for sharing his worldview,
@;and Northeastern PLT for comments on an earlier draft.
@; Justin R. Slepak taught us the term ``textualist''.
@generate-bibliography[#:sec-title "References"]