source: doc/theses/andrew_beach_MMath/uw-ethesis-frontpgs.tex @ 67a1c67

ADTast-experimentalpthread-emulation
Last change on this file since 67a1c67 was 166b384, checked in by Andrew Beach <ajbeach@…>, 3 years ago

Andrew MMath: Added the missing front matter and corrected a few spelling/grammar mistakes.

  • Property mode set to 100644
File size: 6.7 KB
Line 
1% T I T L E   P A G E
2% -------------------
3% Last updated October 23, 2020, by Stephen Carr, IST-Client Services
4% The title page is counted as page `i' but we need to suppress the
5% page number. Also, we don't want any headers or footers.
6\pagestyle{empty}
7\pagenumbering{roman}
8
9% The contents of the title page are specified in the "titlepage"
10% environment.
11\begin{titlepage}
12        \begin{center}
13        \vspace*{1.0cm}
14
15        {\Huge\bf Exception Handling in \CFA}
16
17        \vspace*{1.0cm}
18
19        by \\
20
21        \vspace*{1.0cm}
22
23        {\Large Andrew James Beach} \\
24
25        \vspace*{3.0cm}
26
27        A thesis \\
28        presented to the University of Waterloo \\
29        in fulfillment of the \\
30        thesis requirement for the degree of \\
31        Master of Mathematics \\
32        in \\
33        Computer Science \\
34
35        \vspace*{2.0cm}
36
37        Waterloo, Ontario, Canada, \the\year \\
38
39        \vspace*{1.0cm}
40
41        \copyright{} Andrew James Beach \the\year \\
42        \end{center}
43\end{titlepage}
44
45% The rest of the front pages should contain no headers and be numbered using
46% Roman numerals starting with `ii'.
47\pagestyle{plain}
48\setcounter{page}{2}
49
50\cleardoublepage % Ends the current page and causes all figures and tables
51% that have so far appeared in the input to be printed. In a two-sided
52% printing style, it also makes the next page a right-hand (odd-numbered)
53% page, producing a blank page if necessary.
54
55\begin{comment}
56% E X A M I N I N G   C O M M I T T E E (Required for Ph.D. theses only)
57% Remove or comment out the lines below to remove this page
58\begin{center}\textbf{Examining Committee Membership}\end{center}
59  \noindent
60The following served on the Examining Committee for this thesis.
61The decision of the Examining Committee is by majority vote.
62  \bigskip
63
64  \noindent
65\begin{tabbing}
66Internal-External Member: \=  \kill % using longest text to define tab length
67External Examiner: \>  Bruce Bruce \\
68\> Professor, Dept. of Philosophy of Zoology, University of Wallamaloo \\
69\end{tabbing}
70  \bigskip
71
72  \noindent
73\begin{tabbing}
74Internal-External Member: \=  \kill % using longest text to define tab length
75Supervisor(s): \> Ann Elk \\
76\> Professor, Dept. of Zoology, University of Waterloo \\
77\> Andrea Anaconda \\
78\> Professor Emeritus, Dept. of Zoology, University of Waterloo \\
79\end{tabbing}
80  \bigskip
81
82  \noindent
83  \begin{tabbing}
84Internal-External Member: \=  \kill % using longest text to define tab length
85Internal Member: \> Pamela Python \\
86\> Professor, Dept. of Zoology, University of Waterloo \\
87\end{tabbing}
88  \bigskip
89
90  \noindent
91\begin{tabbing}
92Internal-External Member: \=  \kill % using longest text to define tab length
93Internal-External Member: \> Meta Meta \\
94\> Professor, Dept. of Philosophy, University of Waterloo \\
95\end{tabbing}
96  \bigskip
97
98  \noindent
99\begin{tabbing}
100Internal-External Member: \=  \kill % using longest text to define tab length
101Other Member(s): \> Leeping Fang \\
102\> Professor, Dept. of Fine Art, University of Waterloo \\
103\end{tabbing}
104
105\cleardoublepage
106\end{comment}
107
108% D E C L A R A T I O N   P A G E
109% -------------------------------
110  % The following is a sample Delaration Page as provided by the GSO
111  % December 13th, 2006.  It is designed for an electronic thesis.
112 \begin{center}\textbf{Author's Declaration}\end{center}
113
114 \noindent
115I hereby declare that I am the sole author of this thesis. This is a true copy
116of the thesis, including any required final revisions, as accepted by my
117examiners.
118
119  \bigskip
120
121  \noindent
122I understand that my thesis may be made electronically available to the public.
123
124\cleardoublepage
125
126% A B S T R A C T
127% ---------------
128
129\begin{center}\textbf{Abstract}\end{center}
130
131The \CFA (Cforall) programming language is an evolutionary refinement of
132the C programming language, adding modern programming features without
133changing the programming paradigms of C.
134One of these modern programming features is more powerful error handling
135through the addition of an exception handling mechanism (EHM).
136
137This thesis covers the design and implementation of the \CFA EHM,
138along with a review of the other required \CFA features.
139The EHM includes common features of termination exception handling,
140which abandons and recovers from an operation,
141and similar support for resumption exception handling,
142which repairs and continues with an operation.
143The design of both has been adapted to utilize other tools \CFA provides,
144as well as fit with the assertion based interfaces of the language.
145
146The EHM has been implemented into the \CFA compiler and run-time environment.
147Although it has not yet been optimized, performance testing has shown it has
148comparable performance to other EHMs,
149which is sufficient for use in current \CFA programs.
150
151\cleardoublepage
152
153% A C K N O W L E D G E M E N T S
154% -------------------------------
155
156\begin{center}\textbf{Acknowledgements}\end{center}
157
158As is tradition and his due, I would like to begin by thanking my
159supervisor Peter Buhr. From accepting me in a first place,
160to helping me run performance tests, I would not be here without him.
161Also if there was an ``artist" field here he would be listed there as well,
162he helped me a lot with the diagrams.
163
164I would like to thank the readers
165Gregor Richards and Yizhou Zhang
166for their feedback and approval.
167The presentation of the thesis has definitely been improved with their
168feedback.
169
170I also thank the entire Cforall Team who built the rest of the
171\CFA compiler. From the existing features I used in my work, to the
172internal tooling that makes further development easier and the optimizations
173that make running tests pass by quickly.
174This includes: Aaron Moss, Rob Schluntz, Thierry Delisle, Michael Brooks,
175Mubeen Zulfieqar \& Fangren Yu.
176
177And thank-you Henry Xue, the co-op student who
178converted my macro implementation of exception declarations into
179the compiler features presented in this thesis.
180
181Finally I thank my family, who are still relieved I learned how to read.
182
183\cleardoublepage
184
185\begin{comment}
186% D E D I C A T I O N
187% -------------------
188
189\begin{center}\textbf{Dedication}\end{center}
190
191This is dedicated to the one I love.
192\cleardoublepage
193\end{comment}
194
195% T A B L E   O F   C O N T E N T S
196% ---------------------------------
197\renewcommand\contentsname{Table of Contents}
198\tableofcontents
199\cleardoublepage
200\phantomsection    % allows hyperref to link to the correct page
201
202% L I S T   O F   F I G U R E S
203% -----------------------------
204\addcontentsline{toc}{chapter}{List of Figures}
205\listoffigures
206\cleardoublepage
207\phantomsection         % allows hyperref to link to the correct page
208
209% L I S T   O F   T A B L E S
210% ---------------------------
211\addcontentsline{toc}{chapter}{List of Tables}
212\listoftables
213\cleardoublepage
214\phantomsection         % allows hyperref to link to the correct page
215
216% Change page numbering back to Arabic numerals
217\pagenumbering{arabic}
Note: See TracBrowser for help on using the repository browser.