trivial/popl-2017/paper.scrbl
2016-06-27 16:00:02 -04:00

59 lines
2.3 KiB
Racket

#lang scribble/sigplan @onecolumn @preprint
@(require "common.rkt")
@title{Tailoring Type Theories (T.T.T)}
@authorinfo["Piet Hein" "Funen, Denmark" "gruk at piethein.com"]
@abstract{
Typed APIs suffer from the @emph{diktat} of the host type system.
Libraries that implement string-based domain-specific languages make this
clash particularly obvious. The interpretation functions for the programs
in embedded languages come with the rather uninformative type that maps a
string to some other host type. Only dependently typed languages can
improve on this scenario at the moment, but they impose a steep learning
curve on programmers.
This paper proposes to tackle this problem with a meta-API for the type
checker. Specifically, it observes that most typed languages already
employ an elaboration pass to type-check programs. If this elaborator came
with a sufficiently rich API, the author of a library could supplement the
default types of the API with typing rules that improve the collaboration
between host programs and uses of the library. To demonstrate the
feasibility and effectiveness of this idea, the paper presents a prototype
for Typed Racket and two case studies. It also sketches how the authors of
such ``tailored'' typing rules can argue their soundness.
}
@;@category["D.3.3" "Programming Languages" "Language Constructs and Features"]
@;@terms{Performance, Experimentation, Measurement}
@;@keywords{Gradual typing, performance evaluation}
@; See OUTLINE.md for explanation
@include-section{intro.scrbl}
@include-section{background.scrbl}
@;@include-section{elaborators.scrbl}
@include-section{segfault.scrbl}
@include-section{regexp.scrbl}
@include-section{define.scrbl}
@;@include-section{discussion.scrbl}
@;@include-section{friends.scrbl}
@include-section{related-work.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,
@;Justin R. Slepak for teaching us the term ``textualist''.
@;ICFP reviewers for thoughtful comments
@;and Northeastern PLT for comments on an earlier draft.
@generate-bibliography[#:sec-title "References"]