source: doc/theses/colby_parsons_MMAth/text/frontpgs.tex @ c185ca9

Last change on this file since c185ca9 was aae9c17, checked in by caparsons <caparson@…>, 14 months ago

edited thesis to incorporate Gregors comments

  • Property mode set to 100644
File size: 6.0 KB
Line 
1% T I T L E   P A G E
2% -------------------
3% Last updated August 16, 2022, by 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
16        {\bf High Level Concurrency in \CFA}
17
18        \vspace*{1.0cm}
19
20        \normalsize
21        by \\
22
23        \vspace*{1.0cm}
24
25        \Large
26        Colby Parsons \\
27
28        \vspace*{3.0cm}
29
30        \normalsize
31        A thesis \\
32        presented to the University of Waterloo \\ 
33        in fulfillment of the \\
34        thesis requirement for the degree of \\
35        Master of Mathematics \\
36        in \\
37        Computer Science \\
38
39        \vspace*{2.0cm}
40
41        Waterloo, Ontario, Canada, 2023 \\
42
43        \vspace*{1.0cm}
44
45        \copyright\ Colby Parsons 2023 \\
46        \end{center}
47\end{titlepage}
48
49% The rest of the front pages should contain no headers and be numbered using Roman numerals starting with `ii'
50\pagestyle{plain}
51\setcounter{page}{2}
52
53\cleardoublepage % Ends the current page and causes all figures and tables that have so far appeared in the input to be printed.
54% In a two-sided printing style, it also makes the next page a right-hand (odd-numbered) page, producing a blank page if necessary.
55\phantomsection    % allows hyperref to link to the correct page
56
57% D E C L A R A T I O N   P A G E
58% -------------------------------
59  % The following is a sample Declaration Page as provided by the GSO
60  % December 13th, 2006.  It is designed for an electronic thesis.
61 \addcontentsline{toc}{chapter}{Author's Declaration}
62 \begin{center}\textbf{Author's Declaration}\end{center}
63 
64 \noindent
65I hereby declare that I am the sole author of this thesis. This is a true copy of the thesis, including any required final revisions, as accepted by my examiners.
66
67  \bigskip
68 
69  \noindent
70I understand that my thesis may be made electronically available to the public.
71
72\cleardoublepage
73\phantomsection    % allows hyperref to link to the correct page
74
75% A B S T R A C T
76% ---------------
77\addcontentsline{toc}{chapter}{Abstract}
78\begin{center}\textbf{Abstract}\end{center}
79
80Concurrent programs are notoriously hard to write and even harder to debug. Furthermore concurrent programs must be performant, as the introduction of concurrency into a program is often done to achieve some form of speedup.
81
82This thesis presents a suite of high-level concurrent-language features in the new programming language \CFA, all of which are implemented with the aim of improving the performance, productivity, and safety of concurrent programs.
83\CFA is a non-object-oriented programming language that extends C.
84The foundation for concurrency in \CFA was laid by Thierry Delisle~\cite{Delisle18}, who implemented coroutines, user-level threads, and monitors.
85This thesis builds upon that work and introduces a suite of new concurrent features as its main contribution.
86The features include a @mutex@ statement (similar to a \CC scoped lock or Java \lstinline[language=Java]{synchronized} statement), Go-like channels and \lstinline[language=Go]{select} statement, and an actor system.
87The root ideas behind these features are not new, but the \CFA implementations extends the original ideas in performance, productivity, and safety.
88
89\cleardoublepage
90\phantomsection    % allows hyperref to link to the correct page
91
92% A C K N O W L E D G E M E N T S
93% -------------------------------
94\addcontentsline{toc}{chapter}{Acknowledgements}
95\begin{center}\textbf{Acknowledgements}\end{center}
96
97\noindent
98To begin, I would like to thank my supervisor Professor Peter Buhr. Your guidance, wisdom and support has been invaluable in my learning and development of my research abilities, and in the implementation and writing of this thesis.
99\bigskip
100
101\noindent
102Thank you Thierry Delisle for your insight and knowledge regarding all things concurrency. You challenged my ideas and taught me skills that aid in both thinking about and writing concurrent programs.
103\bigskip
104
105\noindent
106Thanks to Michael Brooks, Andrew Beach, Fangren Yu, and Jiada Liang. Your work on \CFA continues to make it the best language it can be, and our discussions in meetings clarified the ideas that make up this thesis.
107\bigskip
108
109\noindent
110Finally, this work could not have happened without the financial support of David R. Cheriton School of Computer Science and the corporate partnership with Huawei Ltd.
111\cleardoublepage
112\phantomsection    % allows hyperref to link to the correct page
113
114% % D E D I C A T I O N
115% % -------------------
116% \addcontentsline{toc}{chapter}{Dedication}
117% \begin{center}\textbf{Dedication}\end{center}
118
119% This is dedicated to the one I love.
120% \cleardoublepage
121% \phantomsection    % allows hyperref to link to the correct page
122
123% T A B L E   O F   C O N T E N T S
124% ---------------------------------
125\renewcommand\contentsname{Table of Contents}
126\tableofcontents
127\cleardoublepage
128\phantomsection    % allows hyperref to link to the correct page
129
130% L I S T   O F   F I G U R E S
131% -----------------------------
132\addcontentsline{toc}{chapter}{List of Figures}
133\listoffigures
134\cleardoublepage
135\phantomsection         % allows hyperref to link to the correct page
136
137% L I S T   O F   T A B L E S
138% ---------------------------
139\addcontentsline{toc}{chapter}{List of Tables}
140\listoftables
141\cleardoublepage
142\phantomsection         % allows hyperref to link to the correct page
143
144% L I S T   O F   A B B R E V I A T I O N S
145% ---------------------------
146\renewcommand*{\abbreviationsname}{List of Abbreviations}
147\printglossary[type=abbreviations]
148\cleardoublepage
149\phantomsection         % allows hyperref to link to the correct page
150
151% % L I S T   O F   S Y M B O L S
152% % ---------------------------
153% \printglossary[type=symbols]
154% \cleardoublepage
155% \phantomsection               % allows hyperref to link to the correct page
156
157
158% Change page numbering back to Arabic numerals
159\pagenumbering{arabic}
160
Note: See TracBrowser for help on using the repository browser.