

\chapter{Abstract}

\thispagestyle{empty}

The field of programming languages has recently experienced a renaissance,
especially in the field of untyped scripting languages.  But when
scripts written in untyped languages grow into large programs, they may
also become difficult to maintain. To improve the maintainability of
programs in untyped languages, I propose porting portions into
typed sister languages.  To demonstrate the feasibility of this approach, I have
developed Typed Scheme, a typed variant of PLT Scheme.  Typed
Scheme provides smooth and sound interoperability with untyped PLT
Scheme;  it also features a novel type system that supports idiomatic
Scheme programming, so that the porting process is relatively
straightforward.  I have validated the effectiveness of Typed Scheme
by porting thousands of lines of untyped PLT Scheme code.

\cleardoublepage

\vspace*{\fill}
\vspace{-1.5in}
\begin{center}
  \begin{quote}
    \textit{Why, anybody can have a brain. That's a very mediocre
    commodity. Every pusillanimous creature that crawls on the Earth
    or slinks through slimy seas has a brain. Back where I come
    from, we have universities, seats of great learning, where men
    go to become great thinkers. And when they come out, they think
    deep thoughts and with no more brains than you have. But they
    have one thing you haven't got: a diploma.}
    
    \hspace*{\fill} --- \textrm{The Wizard of Oz}
  \end{quote}
\end{center}
\vspace*{\fill}


\chapter[Acknowledgments]{Acknowledgments\vspace{-24pt}}


My original debt is to James D. Jungbauer Jr. and James
E. Hamblin, who first taught me Scheme at the
Johns Hopkins University Center for Talented Youth.  But to the extent that I am
more than merely someone who knows some Scheme, the credit is due to
Matthias Felleisen, the advisor that I needed, and that made me the
researcher that I am today.  Matthias has been wise and impetuous,
understanding and demanding, and has consistently expected and
obtained better from me than I myself did.  

In between, I have been assisted by numerous people.  Robby Findler
and Laszlo Babai encouraged me to go to Northeastern.  Once there, my
colleagues have been wonderful resources: Dave Herman, Carl Eastlund,
Felix Klock, Jesse Tov, Christos Dimoulas, David Van Horn, Aaron
Turon, Dan Brown and 
many others have pushed me to make my ideas clearer and my thinking
more precise.  Ryan Culpepper, Stevie Strickland and Ivan Gazeau have been
productive collaborators as well as fellow students.  My colleagues at
Sun Labs: Eric Allen, David Chase, Victor Luchancgo, Christine Flood,
and Jan-Willem Maessen helped give me a wider perspective
and fresh ideas.  I have also been fortunate to work with Robby Findler
and Matthew Flatt, both as co-authors and as co-developers.  My
committee, Mitch Wand, Olin Shivers and Guy Steele, have helped improve
this dissertation.

All my life, my parents have provided models of what it means to be an
academic, and they have encouraged me at every step as I have pursued
that life.  One day I hope to live up to their example.

Finally, my greatest debt is to my wife, Katie Edmonds, for which no
thanks are enough.

