source: doc/theses/andrew_beach_MMath/uw-ethesis.tex @ d1ecd39

ADTast-experimentalenumforall-pointer-decayjacob/cs343-translationnew-ast-unique-exprpthread-emulationqualifiedEnum
Last change on this file since d1ecd39 was dac16a0, checked in by Andrew Beach <ajbeach@…>, 3 years ago

Andrew MMath: Added the beginnings of performance chapter.

  • Property mode set to 100644
File size: 13.2 KB
RevLine 
[f28fdee]1%======================================================================
[1c1c180]2% University of Waterloo Thesis Template for LaTeX
3% Last Updated November, 2020
4% by Stephen Carr, IST Client Services,
[f28fdee]5% University of Waterloo, 200 University Ave. W., Waterloo, Ontario, Canada
6% FOR ASSISTANCE, please send mail to request@uwaterloo.ca
7
8% DISCLAIMER
[1c1c180]9% To the best of our knowledge, this template satisfies the current uWaterloo
10% thesis requirements. However, it is your responsibility to assure that you
11% have met all requirements of the University and your particular department.
[f28fdee]12
[1c1c180]13% Many thanks for the feedback from many graduates who assisted the
14% development of this template. Also note that there are explanatory comments
15% and tips throughout this template.
[f28fdee]16%======================================================================
17% Some important notes on using this template and making it your own...
18
[1c1c180]19% The University of Waterloo has required electronic thesis submission since
20% October 2006. See the uWaterloo thesis regulations at:
21%   https://uwaterloo.ca/graduate-studies/thesis.
22% This thesis template is geared towards generating a PDF version optimized
23% for viewing on an electronic display, including hyperlinks within the PDF.
[f28fdee]24
[1c1c180]25% DON'T FORGET TO ADD YOUR OWN NAME AND TITLE in the "hyperref" package
26% configuration below. THIS INFORMATION GETS EMBEDDED IN THE FINAL PDF
27% DOCUMENT. You can view the information if you view properties of the PDF.
[f28fdee]28
[1c1c180]29% Many faculties/departments also require one or more printed copies.
30% This template attempts to satisfy both types of output.
[f28fdee]31% See additional notes below.
[1c1c180]32% It is based on the standard "book" document class which provides all
33% necessary sectioning structures and allows multi-part theses.
[f28fdee]34
[1c1c180]35% If you are using this template in Overleaf (cloud-based collaboration
36% service), then it is automatically processed and previewed for you as you
37% edit.
38
39% For people who prefer to install their own LaTeX distributions on their own
40% computers, and process the source files manually, the following notes
41% provide the sequence of tasks:
[f28fdee]42
43% E.g. to process a thesis called "mythesis.tex" based on this template, run:
44
45% pdflatex mythesis     -- first pass of the pdflatex processor
46% bibtex mythesis       -- generates bibliography from .bib data file(s)
[1c1c180]47% makeindex         -- should be run only if an index is used
48% pdflatex mythesis     -- fixes numbering in cross-references, bibliographic
49%                      references, glossaries, index, etc.
50% pdflatex mythesis     -- it takes a couple of passes to completely process all
51%                      cross-references
52
53% If you use the recommended LaTeX editor, Texmaker, you would open the
54% mythesis.tex file, then click the PDFLaTeX button. Then run BibTeX (under
55% the Tools menu). Then click the PDFLaTeX button two more times.
56% If you have an index as well, you'll need to run MakeIndex from the Tools
57% menu as well, before running pdflatex the last two times.
58
59% N.B. The "pdftex" program allows graphics in the following formats to be
60% included with the "\includegraphics" command: PNG, PDF, JPEG, TIFF
61% Tip: Generate your figures and photos in the size you want them to appear
62% in your thesis, rather than scaling them with \includegraphics options.
63% Tip: Any drawings you do should be in scalable vector graphic formats: SVG,
64% PNG, WMF, EPS and then converted to PNG or PDF, so they are scalable in the
65% final PDF as well.
[f28fdee]66% Tip: Photographs should be cropped and compressed so as not to be too large.
67
[1c1c180]68% ======================================================================
[f28fdee]69%   D O C U M E N T   P R E A M B L E
[f17fb7d]70\RequirePackage{etoolbox}
[f28fdee]71
[f17fb7d]72% Control if this for print (set true) or will stay digital (default).
73% Print is two sided, digital uses more colours.
74\newtoggle{printversion}
75%\toggletrue{printversion}
[f28fdee]76
[f17fb7d]77\iftoggle{printversion}{%
78  \documentclass[letterpaper,12pt,titlepage,openright,twoside,final]{book}
79}{%
80  \documentclass[letterpaper,12pt,titlepage,oneside,final]{book}
81}
[29c9b23]82
[edc6ea2]83% Does nothing, ignores \href tags (redefined by hyperref package).
[df24d37]84\newcommand{\href}[1]{#1}
[f28fdee]85
[f17fb7d]86% For a nomenclature (optional; available from ctan.org)
87%\usepackage{nomencl}
[1c1c180]88% Lots of math symbols and environments
89\usepackage{amsmath,amssymb,amstext}
[6a8208cb]90% For including graphics (must match graphics driver)
91\usepackage{epic,eepic}
92\usepackage{graphicx}
[29c9b23]93% Removes large sections of the document.
94\usepackage{comment}
[fadfabf]95% Adds todo commands.
96\usepackage{todo}
[df24d37]97% cfa macros used in the document
98\usepackage{cfalab}
[403f287]99% allow global and individual modification of spacing
100\usepackage{enumitem}
[a049412]101% Improved reference tools.
102\usepackage[nospace]{varioref}
[1830a86]103
[f28fdee]104% Hyperlinks make it very easy to navigate an electronic document.
[1c1c180]105% In addition, this is where you should specify the thesis title and author as
106% they appear in the properties of the PDF document.
[f28fdee]107% Use the "hyperref" package
108% N.B. HYPERREF MUST BE THE LAST PACKAGE LOADED; ADD ADDITIONAL PKGS ABOVE
[6a8208cb]109\usepackage[pagebackref=true]{hyperref}
[1c1c180]110% N.B. pagebackref=true provides links back from the References to the body
111% text. This can cause trouble for printing.
[f28fdee]112\hypersetup{
113    plainpages=false,       % needed if Roman numbers in frontpages
[7eb6eb5]114    unicode=false,          % non-Latin characters in Acrobat's bookmarks
115    pdftoolbar=true,        % show Acrobat's toolbar?
116    pdfmenubar=true,        % show Acrobat's menu?
[f28fdee]117    pdffitwindow=false,     % window fit to page when opened
118    pdfstartview={FitH},    % fits the width of the page to the window
119    pdfnewwindow=true,      % links in new window
120    colorlinks=true,        % false: boxed links; true: colored links
121}
[f17fb7d]122\iftoggle{printversion}{
123  \hypersetup{
124    citecolor=black,        % colour of links to bibliography
125    filecolor=black,        % colour of file links
126    linkcolor=black,        % colour of internal links
127    urlcolor=black,         % colour of external links
128  }
129}{ % Digital Version
130  \hypersetup{
131    citecolor=green,
132    filecolor=magenta,
133    linkcolor=blue,
134    urlcolor=cyan,
135  }
136}
137
138\hypersetup{
139  pdftitle={Exception Handling in Cforall},
140  pdfauthor={Andrew James Beach},
141  pdfsubject={Computer Science},
142  pdfkeywords={programming languages} {exceptions}
143      {language design} {language implementation},
144}
[f28fdee]145
[1c1c180]146% Exception to the rule of hyperref being the last add-on package
[299b8b2]147\usepackage[toc,abbreviations]{glossaries-extra}
[1c1c180]148% If glossaries-extra is not in your LaTeX distribution, get it from CTAN
149% (http://ctan.org/pkg/glossaries-extra), although it's supposed to be in
150% both the TeX Live and MikTeX distributions. There are also documentation
151% and installation instructions there.
[f28fdee]152
153% Setting up the page margins...
[1c1c180]154\setlength{\textheight}{9in}
155\setlength{\topmargin}{-0.45in}
156\setlength{\headsep}{0.25in}
157% uWaterloo thesis requirements specify a minimum of 1 inch (72pt) margin at
158% the top, bottom, and outside page edges and a 1.125 in. (81pt) gutter margin
159% (on binding side). While this is not an issue for electronic viewing, a PDF
160% may be printed, and so we have the same page layout for both printed and
161% electronic versions, we leave the gutter margin in. Set margins to minimum
162% permitted by uWaterloo thesis regulations:
[f28fdee]163\setlength{\marginparwidth}{0pt} % width of margin notes
164% N.B. If margin notes are used, you must adjust \textwidth, \marginparwidth
165% and \marginparsep so that the space left between the margin notes and page
166% edge is less than 15 mm (0.6 in.)
[1c1c180]167% width of space between body text and margin notes
168\setlength{\marginparsep}{0pt}
169% Adds 1/8 in. to binding side of all
[f28fdee]170% even-numbered pages when the "twoside" printing option is selected
[1c1c180]171\setlength{\evensidemargin}{0.125in}
172% Adds 1/8 in. to the left of all pages when "oneside" printing is selected,
173% and to the left of all odd-numbered pages when "twoside" printing is selected
174\setlength{\oddsidemargin}{0.125in}
175% assuming US letter paper (8.5 in. x 11 in.) and side margins as above
176\setlength{\textwidth}{6.375in}
[f28fdee]177\raggedbottom
178
[1c1c180]179% The following statement specifies the amount of space between paragraphs.
180% Other reasonable specifications are \bigskipamount and \smallskipamount.
[f28fdee]181\setlength{\parskip}{\medskipamount}
182
[1c1c180]183% The following statement controls the line spacing.
184% The default spacing corresponds to good typographic conventions and only
185% slight changes (e.g., perhaps "1.2"), if any, should be made.
[f28fdee]186\renewcommand{\baselinestretch}{1} % this is the default line space setting
187
188% By default, each chapter will start on a recto (right-hand side) page.
[1c1c180]189% We also force each section of the front pages to start on a recto page by
190% inserting \cleardoublepage commands. In many cases, this will require that
191% the verso (left-hand) page be blank, and while it should be counted, a page
192% number should not be printed. The following statements ensure a page number
193% is not printed on an otherwise blank verso page.
[f28fdee]194\let\origdoublepage\cleardoublepage
195\newcommand{\clearemptydoublepage}{%
196  \clearpage{\pagestyle{empty}\origdoublepage}}
197\let\cleardoublepage\clearemptydoublepage
198
[1c1c180]199% Define Glossary terms (This is properly done here, in the preamble and
200% could also be \input{} from a separate file...)
[f28fdee]201\input{glossaries}
202\makeglossaries
203
[887fc79]204% New commands/options for this document alone:
205% Code snipits with formating and line-breaks.
206\newcommand\defaultResumptionHandler{\texttt{default\-Resumption\-Handler}}
207\newcommand\defaultTerminationHandler{\texttt{default\-Termination\-Handler}}
208
[c1136c56]209% listings package configuation:
[df24d37]210\lstMakeShortInline@
[c1136c56]211\lstset{language=CFA,style=cfacommon,basicstyle=\linespread{0.9}\tt}
[edc6ea2]212\lstset{moredelim=**[is][\protect\color{red}]{@}{@}}
[29c9b23]213% Annotations from Peter:
[7eb6eb5]214\newcommand{\PAB}[1]{{\color{blue}PAB: #1}}
[29c9b23]215% Change the style of abbreviations:
216\renewcommand{\abbrevFont}{}
[f28fdee]217
218%======================================================================
219%   L O G I C A L    D O C U M E N T
220% The logical document contains the main content of your thesis.
[1c1c180]221% Being a large document, it is a good idea to divide your thesis into several
222% files, each one containing one chapter or other significant chunk of content,
223% so you can easily shuffle things around later if desired.
[f28fdee]224%======================================================================
225\begin{document}
226
227%----------------------------------------------------------------------
228% FRONT MATERIAL
229% title page,declaration, borrowers' page, abstract, acknowledgements,
[1c1c180]230% dedication, table of contents, list of tables, list of figures,
231% nomenclature, etc.
[f28fdee]232%----------------------------------------------------------------------
[1c1c180]233\input{uw-ethesis-frontpgs}
[f28fdee]234
235%----------------------------------------------------------------------
236% MAIN BODY
237% We suggest using a separate file for each chapter of your thesis.
[1c1c180]238% Start each chapter file with the \chapter command. Only use \documentclass,
239% \begin{document} and \end{document} commands in this master document.
[f28fdee]240% Tip: Putting each sentence on a new line is a way to simplify later editing.
241%----------------------------------------------------------------------
[e8a7ca2]242\input{intro}
[f28fdee]243\input{existing}
244\input{features}
[7eb6eb5]245\input{implement}
[dac16a0]246\input{performance}
[f28fdee]247\input{future}
248
249%----------------------------------------------------------------------
250% END MATERIAL
251% Bibliography, Appendices, Index, etc.
252%----------------------------------------------------------------------
253
254% Bibliography
255
[1c1c180]256% The following statement selects the style to use for references.
257% It controls the sort order of the entries in the bibliography and also the
258% formatting for the in-text labels.
[f28fdee]259\bibliographystyle{plain}
[1c1c180]260% This specifies the location of the file containing the bibliographic
261% information. It assumes you're using BibTeX to manage your references (if
262% not, why not?).
263\cleardoublepage % This is needed if the "book" document class is used, to
264% place the anchor in the correct page, because the bibliography will start
265% on its own page.
266% Use \clearpage instead if the document class uses the "oneside" argument.
267\phantomsection  % With hyperref package, enables hyperlinking from the table
268% of contents to bibliography.
269% The following statement causes the title "References" to be used for the
270% bibliography section:
[f28fdee]271\renewcommand*{\bibname}{References}
272
273% Add the References to the Table of Contents
274\addcontentsline{toc}{chapter}{\textbf{References}}
275
276\bibliography{uw-ethesis,pl}
[1c1c180]277% Tip: You can create multiple .bib files to organize your references. Just
278% list them all in the \bibliogaphy command, separated by commas (no spaces).
[f28fdee]279
[1c1c180]280% The following statement causes the specified references to be added to the
281% bibliography even if they were not cited in the text. The asterisk is a
282% wildcard that causes all entries in the bibliographic database to be
283% included (optional).
[f28fdee]284% \nocite{*}
285%----------------------------------------------------------------------
286
287% Appendices
288
289% The \appendix statement indicates the beginning of the appendices.
290\appendix
[1c1c180]291% Add an un-numbered title page before the appendices and a line in the Table
292% of Contents
[f28fdee]293% \chapter*{APPENDICES}
294% \addcontentsline{toc}{chapter}{APPENDICES}
[1c1c180]295% Appendices are just more chapters, with different labeling (letters instead
296% of numbers).
[f28fdee]297% \input{appendix-matlab_plots.tex}
298
[1c1c180]299% GLOSSARIES (Lists of definitions, abbreviations, symbols, etc.
300% provided by the glossaries-extra package)
[f28fdee]301% -----------------------------
302\printglossaries
303\cleardoublepage
304\phantomsection         % allows hyperref to link to the correct page
305
[fadfabf]306\todos
307
[f28fdee]308%----------------------------------------------------------------------
309\end{document} % end of logical document
Note: See TracBrowser for help on using the repository browser.