source: doc/theses/colby_parsons_MMAth/text/frontpgs.tex @ 75d874a

ADTast-experimental
Last change on this file since 75d874a was 0faacb8, checked in by caparsons <caparson@…>, 14 months ago

various additions to thesis, finished first draft of actor chapter (lots of polish needed), added first draft of intro to CFA features & intro to CFA threading, added start of mutex stmt chapter

  • Property mode set to 100644
File size: 5.7 KB
Line 
1% T I T L E   P A G E
2% -------------------
3% Last updated May 24, 2011, by Stephen Carr, IST-Client Services
4% The title page is counted as page `i' but we need to suppress the
5% page number.  We also 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
56
57
58% D E C L A R A T I O N   P A G E
59% -------------------------------
60  % The following is the sample Delaration Page as provided by the GSO
61  % December 13th, 2006.  It is designed for an electronic thesis.
62  \noindent
63  I 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.
64  \bigskip
65
66  \noindent
67  I understand that my thesis may be made electronically available to the public.
68
69\cleardoublepage
70%\newpage
71
72% A B S T R A C T
73% ---------------
74
75\begin{center}\textbf{Abstract}\end{center}
76
77Concurrent programs are notoriously hard to program 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. This thesis presents a suite of high level concurrent language features in \CFA, all of which are implemented with the aim of improving the performance, productivity, and safety of concurrent programs. \CFA is a non object-oriented programming language that extends C. The foundation for concurrency in \CFA was laid by Thierry Delisle, who implemented coroutines, user-level threads, and monitors\cite{Delisle18}. This thesis builds upon that groundwork and introduces a suite of concurrent features as its main contribution. The features include a diverse set of polymorphic locks, Go-like channels, mutex statements (similar to \CC scoped locks or Java synchronized statement), an actor system, and a Go-like select statement. The root idea behind these features are not new, but the \CFA implementations improve upon the original ideas in performance, productivity, and safety.
78
79\cleardoublepage
80%\newpage
81
82% A C K N O W L E D G E M E N T S
83% -------------------------------
84
85\begin{center}\textbf{Acknowledgements}\end{center}
86
87\noindent
88To 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.
89\bigskip
90
91\noindent
92Thank 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.
93\bigskip
94
95\noindent
96Thanks 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.
97\bigskip
98
99\noindent
100Finally, 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.
101
102\cleardoublepage
103%\newpage
104
105% % D E D I C A T I O N
106% % -------------------
107
108% \begin{center}\textbf{Dedication}\end{center}
109
110%
111% \cleardoublepage
112% %\newpage
113
114% T A B L E   O F   C O N T E N T S
115% ---------------------------------
116\renewcommand\contentsname{Table of Contents}
117\tableofcontents
118\cleardoublepage
119\phantomsection
120%\newpage
121
122% L I S T   O F   T A B L E S
123% ---------------------------
124\addcontentsline{toc}{chapter}{List of Tables}
125\listoftables
126\cleardoublepage
127\phantomsection         % allows hyperref to link to the correct page
128%\newpage
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%\newpage
137
138% L I S T   O F   L I S T I N G S
139% -----------------------------
140\addcontentsline{toc}{chapter}{List of Listings}
141\lstlistoflistings
142\cleardoublepage
143\phantomsection         % allows hyperref to link to the correct page
144%\newpage
145
146% L I S T   O F   S Y M B O L S
147% -----------------------------
148% To include a Nomenclature section
149% \addcontentsline{toc}{chapter}{\textbf{Nomenclature}}
150% \renewcommand{\nomname}{Nomenclature}
151% \printglossary
152% \cleardoublepage
153% \phantomsection % allows hyperref to link to the correct page
154% \newpage
155
156% L I S T   O F   T A B L E S
157% -----------------------------
158\addcontentsline{toc}{chapter}{List of Acronyms}
159\printglossary[type=\acronymtype,title={List of Acronyms}]
160\cleardoublepage
161\phantomsection         % allows hyperref to link to the correct page
162
163% Change page numbering back to Arabic numerals
164\pagenumbering{arabic}
165
Note: See TracBrowser for help on using the repository browser.