Changeset 678c540
- Timestamp:
- Apr 1, 2023, 11:02:26 PM (2 years ago)
- Branches:
- ADT, ast-experimental, master
- Children:
- e41c4c6
- Parents:
- 75bd041
- Location:
- doc/theses/colby_parsons_MMAth
- Files:
-
- 7 edited
Legend:
- Unmodified
- Added
- Removed
-
TabularUnified doc/theses/colby_parsons_MMAth/Makefile ¶
r75bd041 r678c540 101 101 -${BibTeX} ${Build}/${basename $@} 102 102 # Some citations reference others so run again to resolve these citations 103 ${LaTeX} ${basename $@}.tex104 -${BibTeX} ${Build}/${basename $@}103 # ${LaTeX} ${basename $@}.tex 104 # -${BibTeX} ${Build}/${basename $@} 105 105 # Make index from *.aux entries and input index at end of document 106 106 makeglossaries -q -s ${Build}/${basename $@}.ist ${Build}/${basename $@} -
TabularUnified doc/theses/colby_parsons_MMAth/style/cfa-format.tex ¶
r75bd041 r678c540 97 97 \lstdefinestyle{pseudoStyle}{ 98 98 escapeinside={@@}, 99 basicstyle=\linespread{0.9}\sf\footnotesize, % reduce line spacing and use typewriter font 100 keywordstyle=\bfseries\color{blue}, 101 keywordstyle=[2]\bfseries\color{Plum}, 102 commentstyle=\itshape\color{OliveGreen}, % green and italic comments 103 identifierstyle=\color{identifierCol}, 104 stringstyle=\sf\color{Mahogany}, % use sanserif font 99 % basicstyle=\linespread{0.9}\sf\footnotesize, % reduce line spacing and use typewriter font 100 basicstyle=\linespread{0.9}\sf, % reduce line spacing and use typewriter font 101 % keywordstyle=\bfseries\color{blue}, 102 % keywordstyle=[2]\bfseries\color{Plum}, 103 % commentstyle=\itshape\color{OliveGreen}, % green and italic comments 104 % identifierstyle=\color{identifierCol}, 105 % stringstyle=\sf\color{Mahogany}, % use sanserif font 105 106 mathescape=true, 106 107 columns=fixed, … … 149 150 \lstdefinestyle{cfaStyle}{ 150 151 escapeinside={@@}, 151 basicstyle=\linespread{0.9}\tt\footnotesize, % reduce line spacing and use typewriter font 152 keywordstyle=\bfseries\color{blue}, 153 keywordstyle=[2]\bfseries\color{Plum}, 154 commentstyle=\sf\itshape\color{OliveGreen}, % green and italic comments 155 identifierstyle=\color{identifierCol}, 156 stringstyle=\sf\color{Mahogany}, % use sanserif font 152 % basicstyle=\linespread{0.9}\tt\footnotesize, % reduce line spacing and use typewriter font 153 basicstyle=\linespread{0.9}\sf, % reduce line spacing and use typewriter font 154 % keywordstyle=\bfseries\color{blue}, 155 % keywordstyle=[2]\bfseries\color{Plum}, 156 % commentstyle=\sf\itshape\color{OliveGreen}, % green and italic comments 157 % identifierstyle=\color{identifierCol}, 158 % stringstyle=\sf\color{Mahogany}, % use sanserif font 159 stringstyle=\tt, % use sanserif font 157 160 mathescape=true, 158 columns=fixed, 159 aboveskip=4pt, % spacing above/below code block 160 belowskip=3pt, 161 % columns=fixed, 162 columns=fullflexible, 163 % aboveskip=4pt, % spacing above/below code block 164 % belowskip=3pt, 161 165 keepspaces=true, 162 166 tabsize=4, … … 166 170 showspaces=false, 167 171 showstringspaces=false, 172 showlines=true, % show blank lines at end of code 168 173 escapechar=\$, 169 174 xleftmargin=\parindentlnth, % indent code to paragraph indentation 170 175 moredelim=[is][\color{red}\bfseries]{**R**}{**R**}, % red highlighting 171 176 morekeywords=[2]{accept, signal, signal_block, wait, waitfor}, 177 abovecaptionskip=5pt, 172 178 } 173 179 -
TabularUnified doc/theses/colby_parsons_MMAth/text/CFA_intro.tex ¶
r75bd041 r678c540 11 11 References in \CFA are similar to references in \CC, however in \CFA references are rebindable, and support multi-level referencing. References in \CFA are a layer of syntactic sugar over pointers to reduce the number of ref/deref operations needed with pointer usage. Some examples of references in \CFA are shown in Listing~\ref{l:cfa_ref}. Another related item to note is that the \CFA equivalent of \CC's \code{nullptr} is \code{0p}. 12 12 13 \begin{cfacode}[ tabsize=3,caption={Example of \CFA references},label={l:cfa_ref}]13 \begin{cfacode}[caption={Example of \CFA references},label={l:cfa_ref}] 14 14 int i = 2; 15 15 int & ref_i = i; // declare ref to i … … 32 32 33 33 34 \begin{cfacode}[ tabsize=3,caption={Example of \CFA function overloading},label={l:cfa_overload}]34 \begin{cfacode}[caption={Example of \CFA function overloading},label={l:cfa_overload}] 35 35 int foo() { printf("A\n"); return 0;} 36 36 int foo( int bar ) { printf("B\n"); return 1; } -
TabularUnified doc/theses/colby_parsons_MMAth/text/frontpgs.tex ¶
r75bd041 r678c540 58 58 % D E C L A R A T I O N P A G E 59 59 % ------------------------------- 60 % The following is the sample De laration Page as provided by the GSO60 % The following is the sample Declaration Page as provided by the GSO 61 61 % December 13th, 2006. It is designed for an electronic thesis. 62 62 \noindent … … 75 75 \begin{center}\textbf{Abstract}\end{center} 76 76 77 Concurrent 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 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. 77 Concurrent 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. 78 79 This 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. \CFA is a non object-oriented programming language that extends C. The foundation for concurrency in \CFA was laid by Thierry Delisle~\cite{Delisle18}, who implemented coroutines, user-level threads, and monitors. This thesis builds upon that work and introduces a suite of new concurrent features as its main contribution. The features include 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 ideas behind these features are not new, but the \CFA implementations extends the original ideas in performance, productivity, and safety. 78 80 79 81 \cleardoublepage -
TabularUnified doc/theses/colby_parsons_MMAth/text/intro.tex ¶
r75bd041 r678c540 5 5 % ====================================================================== 6 6 7 Concurrent programs are the wild west of programming . Determinism and simple ordering of program operations go out the window. To seize the reins and write performant and safe concurrent code, concurrent language features are needed. Like any other craftsmen, programmers are only as good as their tools, and concurrent tooling and features are no exception. This thesis presents a set of concurrent features implemened in \CFA. These features aim to improve the performance of concurrent programs, aid in writing safe programs, and assist user productivity by improving the ease of concurrent programming. The groundwork for concurrent features in \CFA was implemented by Thierry Delisle, who contributed the threading system, coroutines, monitors and other tools\cite{Delisle18}. This thesis builds on top of that foundation by providing a suite of high-level concurrent features. These features include mutex statements, channels, an actor system and a waituntil statement. All of these features exist in other programming in some shape or form, however this thesis contributes uponthe original ideas by improving performance, productivity, and safety.7 Concurrent programs are the wild west of programming because determinism and simple ordering of program operations go out the window. To seize the reins and write performant and safe concurrent code, high-level concurrent-language features are needed. Like any other craftsmen, programmers are only as good as their tools, and concurrent tooling and features are no exception. This thesis presents a set of concurrent features implemented in the new programming-language \CFA. These features aim to improve the performance of concurrent programs, aid in writing safe programs, and assist user productivity by improving the ease of concurrent programming. The groundwork for concurrent features in \CFA was implemented by Thierry Delisle~\cite{Delisle18}, who contributed the threading system, coroutines, monitors and other tools. This thesis builds on top of that foundation by providing a suite of high-level concurrent features. These features include mutex statements, channels, an actor system and a waituntil statement. All of these features exist in other programming in some shape or form, however this thesis extends the original ideas by improving performance, productivity, and safety. -
TabularUnified doc/theses/colby_parsons_MMAth/thesis.tex ¶
r75bd041 r678c540 1 1 % requires tex packages: texlive-base texlive-latex-base tex-common texlive-humanities texlive-latex-extra texlive-fonts-recommended 2 3 % inline code �...� (copyright symbol) emacs: C-q M-)4 % red highlighting �...� (registered trademark symbol) emacs: C-q M-.5 % blue highlighting �...� (sharp s symbol) emacs: C-q M-_6 % green highlighting �...� (cent symbol) emacs: C-q M-"7 % LaTex escape �...� (section symbol) emacs: C-q M-'8 % keyword escape �...� (pilcrow symbol) emacs: C-q M-^9 % math escape $...$ (dollar symbol)10 2 11 3 \documentclass[letterpaper,12pt,titlepage,oneside,final]{book} … … 14 6 15 7 % Latex packages used in the document. 16 \usepackage[T1]{fontenc} % allow Latin1 (extended ASCII) characters 8 \usepackage{fullpage,times,comment} 9 %\usepackage[T1]{fontenc} 10 %\usepackage[scaled=0.88]{helvet} % descent Helvetica font and scale to times size 17 11 \usepackage{textcomp} 18 \usepackage[latin1]{inputenc} 19 \usepackage{fullpage,times,comment} 12 %\usepackage[latin1]{inputenc} 20 13 \usepackage{epic,eepic} 21 14 \usepackage{upquote} % switch curled `'" to straight -
TabularUnified doc/theses/colby_parsons_MMAth/version ¶
r75bd041 r678c540 1 0.0. 01 0.0.15
Note: See TracChangeset
for help on using the changeset viewer.