samth-dissertation/main.tex
Sam Tobin-Hochstadt 9c7a001a36 init
2017-07-10 13:02:10 -04:00

285 lines
6.5 KiB
TeX

% Keep this before the document class to calculate stuff correctly
%\RequirePackage{mathpazo}\normalfont % \mathit{\kappa} doesn't work
\RequirePackage{charter}\normalfont
% draft: Short title page, exact date-time of build, extra
% footer with date
% final: official title page and footers
%
%\documentclass[12pt,draft,oldfontcommands]{memoir}
\documentclass[12pt,final,oldfontcommands]{memoir}
% Customization of memoir class to comply with dissertation guidelines
\RequirePackage{timestamp}
\RequirePackage[usenames,dvipsnames]{color}
\RequirePackage{dissertationfmt}
\RequirePackage[longnamesfirst]{natbib}
\RequirePackage{slatex}
\slatexseparateincludes
\RequirePackage{mathpartir}
\RequirePackage{dls-mmm}
\usepackage{ifthen}
%\usepackage[stable]{footmisc}
\RequirePackage{fancyvrb}
\RequirePackage{dls-macros}
\usepackage{amsmath}
\usepackage{amssymb}
\usepackage{ts}
\ifdraftdoc
\usepackage[pdftex,colorlinks=true,draft=false,linkcolor=black,citecolor=black,urlcolor=black]{hyperref}
\else
\usepackage[pdftex,colorlinks=true,draft=false,linkcolor=black,citecolor=black,urlcolor=black]{hyperref}
\fi
\usepackage[all]{hypcap}
\RequirePackage{memhfixc}
%\hyphenate{wrig-stad}
\newcommand{\cpp}{C++}
\newcommand{\csharp}{C\#}
\bibpunct{[}{]}{;}{a}{}{,}
\leftcodeskip=5pt %0pt plus 1fil
\rightcodeskip=1pt %% guarantees that no code blocks are broken across a
%% page -- need to do some shuffling for calculations
\defschememathescape{$} %$
\setspecialsymbol{HPmodule-begin}{\keywordfont{\#\%module-begin}}
\setspecialsymbol{HPtop-interaction}{\keywordfont{\#\%top-interaction}}
\setspecialsymbol{HPapp}{\keywordfont{\#\%app}}
\setspecialsymbol{HPdatum}{\keywordfont{\#\%datum}}
\setkeyword{module-begin top-interaction}
\setkeyword{define/contract contract all-defined-out for}
\setspecialsymbol{typeKW}{\keywordfont{type}}
\setspecialsymbol{<=}{$\Leftarrow$}
\setkeyword{require/typed pdefine: Listof require-typed-struct lib
int
planet Symbol Opaque require/opaque-type define-values values
All cases define-type Any Pair let-values let*
Char N B A S Path
-> Number String Boolean : define: define-type-alias define-struct
define-typed-struct module with-syntax syntax-case
define-struct: let*: Refinement R provide for-syntax require
rename-out except-out all-from-out define-for-syntax
begin-for-syntax match rename-in compiled-module define/contract
#%app #%module-begin #%top-interaction class unit
Integer inst}
\setspecialsymbol{lambda}{\ma{\lambda}}
\setspecialsymbol{lambda:}{\ma{\lambda}:}
\setspecialsymbol{l:}{\ma{\lambda}:}
\setspecialsymbol{hlang}{{\bf \#lang}}
\setspecialsymbol{langts}{{{\bf \#lang} typed-scheme}}
\setspecialsymbol{langs}{{\bf \#lang} scheme}
\setspecialsymbol{mu}{$\mu$}
\setspecialsymbol{string->number}{\mbox{\variablefont{string}$\rightarrow$\variablefont{number}}}
\setspecialsymbol{->}{$\rightarrow$}
\setspecialsymbol{U}{\ma{\bigcup}}
\setspecialsymbol{-U>}{\ma{\stackrel{\mbox{(\usym\ {\bf Number} {\bf Boolean})}}{\to}}}
\setspecialsymbol{bover}{\ma{\stackrel{b}{\to}}}
\setspecialsymbol{bot}{\ma{\bot}}
\setspecialsymbol{ELIDED}{\mbox{$\mbox{\tiny ~~{\it omitted\/}~~} \over ~$}}
\setspecialsymbol{dotsa}{$\dots_{\alpha}$}
\setspecialsymbol{dotsb}{$\dots_{\beta}$}
\setspecialsymbol{dotsc}{$\dots_{\gamma}$}
\setspecialsymbol{alpha}{$\alpha$}
\setspecialsymbol{beta}{$\beta$}
\setspecialsymbol{gamma}{$\gamma$}
\setspecialsymbol{sigma}{$\sigma$}
\setspecialsymbol{tau}{$\tau$}
\setspecialsymbol{All}{$\forall$}
\setvariable{rec}
\def\multiargs{false}
\def\paths{false}
\def\dologic{false}
\ifthenelse{\equal{\multiargs}{true}}{
\margtrue
}
{
\margfalse
}
\ifthenelse{\equal{\paths}{true}}{
\pathtrue
}
{
\pathfalse
}
\ifthenelse{\equal{\dologic}{true}}{
\logictrue
}
{
\logicfalse
}
% Enable svn keyword expansion
%\RequirePackage{svn-multi}
%%% Technical stuff
%\RequirePackage{amsthm} % for the proof environment
%%% Typography customizations
%\RequirePackage{afterpage} % for the \afterpage command
\setcounter{tocdepth}{1}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\mdef\l{\lambda}
\title{Typed Scheme: \\ {\large \textrm{From Scripts to Programs}}}
\author{Sam Tobin-Hochstadt}
\makeindex
%\doublespacing
\begin{document}
%%% Front stuff
\frontmatter
% Cover page
\makeccsthesistitle
% Preface (abstract, acknowledgements)
\input{preface.tex}
% ToC, LoF, LoT, etc.
\cleardoublepage
\tableofcontents
\cleardoublepage
\listoffigures
%\listoftables
\newcounter{ex}
\newsavebox{\boxedtextbin}
\newenvironment{boxedtext}
{\begin{lrbox}{\boxedtextbin}
\begin{minipage}{0.95 \textwidth} }
{\end{minipage}\end{lrbox}
\begin{center}\fbox{\usebox{\boxedtextbin}}\end{center}}
\newbox\exbox
\newenvironment{exmp}{
\refstepcounter{ex}%
\begin{boxedtext}
\setbox\exbox=\vbox{\par\hfill\framebox{\small Example~\theex}}
\usebox\exbox
\vskip-1em
\vskip-\ht\exbox
\begin{SingleSpace*}}
{\end{SingleSpace*}
\end{boxedtext}}
\let\cite\citep
%%% Main document
\mainmatter
\input{intro.tex}
\chapter{Typed Scheme through Examples}
\label{chap:overview}
\input{informal}
\input{semiformal}
\chapter{Design Choices}
\label{chap:design}
\input{design}
\chapter{Prior Work}
\input{prior}
\chapter{Integrating Typed and Untyped Code}
\label{chap:integrate}
\input{integrate.tex}
\chapter{Occurrence Typing}
\label{chap:occur}
\input{occur}
\pathtrue
\chapter{Extensions to Occurrence Typing}
\label{chap:occur-extend}
\input{popl-formal2}
\logictrue
\input{popl-formal3}
\input{popl-formal4}
\chapter{Refinement Types}
\label{chap:refinement}
\input{mf-refinement}
\input{mf-extended-example}
\chapter[Variable-Arity Polymorphism]{Variable-Arity Polymorphism\footnote{This is joint work with T. Stephen Strickland~\cite{sthf:variable-arity}.}
}
\label{chap:dots}
{
\input{varar-intro}
\input{esop09/formal}
}
\chapter[Implementation]{Implementation\footnote{This is joint work
with Ryan Culpepper and Matthew Flatt~\cite{ctf:macros}.}}
\label{chap:impl}
\input{scheme-syntax}
\input{scheme-type-one}
\input{scheme-type-multi}
\chapter[Evaluation]{Evaluation\footnote{Many of the programs in this chapter were
originally ported to Typed Scheme by Ivan Gazeau.}}
\label{chap:exp}
\label{chap:eval}
\input{icse-exp}
\chapter{Related Work}
\label{chap:related}
\def\lateff{latent filter}
\def\lexeff{visible filter}
\def\subpred{sub-filter}
\input{related}
\chapter{Conclusion}
\label{chap:conclusion}
\input{conclusion}
%%% The bibliography
\bibliographystyle{plainnat}
%\bibliographystyle{plain}
\bibliography{new-popl}
%%% The appendix
%\appendix
%%% Back stuff
%\backmatter
\end{document}