Changeset e41c4c6
- Timestamp:
- Apr 2, 2023, 8:20:16 AM (20 months ago)
- Branches:
- ADT, ast-experimental, master
- Children:
- fb7cda9
- Parents:
- 1e6cecb (diff), 678c540 (diff)
Note: this is a merge changeset, the changes displayed below correspond to the merge itself.
Use the(diff)
links above to see all the changes relative to each parent. - Location:
- doc/theses/colby_parsons_MMAth
- Files:
-
- 7 edited
Legend:
- Unmodified
- Added
- Removed
-
doc/theses/colby_parsons_MMAth/Makefile
r1e6cecb re41c4c6 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 $@} -
doc/theses/colby_parsons_MMAth/style/cfa-format.tex
r1e6cecb re41c4c6 11 11 \lstdefinestyle{defaultStyle}{ 12 12 escapeinside={@@}, 13 basicstyle=\linespread{0.9}\tt\footnotesize, % reduce line spacing and use typewriter font 14 keywordstyle=\bfseries\color{blue}, 15 keywordstyle=[2]\bfseries\color{Plum}, 16 commentstyle=\itshape\color{OliveGreen}, % green and italic comments 17 identifierstyle=\color{identifierCol}, 18 stringstyle=\sf\color{Mahogany}, % use sanserif font 13 % basicstyle=\linespread{0.9}\tt\footnotesize, % reduce line spacing and use typewriter font 14 basicstyle=\linespread{0.9}\sf, % reduce line spacing and use typewriter 15 % keywordstyle=\bfseries\color{blue}, 16 % keywordstyle=[2]\bfseries\color{Plum}, 17 % commentstyle=\itshape\color{OliveGreen}, % green and italic comments 18 % identifierstyle=\color{identifierCol}, 19 % stringstyle=\sf\color{Mahogany}, % use sanserif font 20 stringstyle=\tt, % use sanserif font 19 21 mathescape=true, 20 columns=fixed, 21 aboveskip=4pt, % spacing above/below code block 22 belowskip=3pt, 22 % columns=fixed, 23 columns=fullflexible, 24 % aboveskip=4pt, % spacing above/below code block 25 % belowskip=3pt, 23 26 keepspaces=true, 24 27 tabsize=4, … … 37 40 \lstdefinestyle{cfaStyle}{ 38 41 escapeinside={@@}, 39 basicstyle=\linespread{0.9}\tt\footnotesize, % reduce line spacing and use typewriter font 40 keywordstyle=\bfseries\color{blue}, 41 keywordstyle=[2]\bfseries\color{Plum}, 42 commentstyle=\sf\itshape\color{OliveGreen}, % green and italic comments 43 identifierstyle=\color{identifierCol}, 44 stringstyle=\sf\color{Mahogany}, % use sanserif font 42 % basicstyle=\linespread{0.9}\tt\footnotesize, % reduce line spacing and use typewriter font 43 basicstyle=\linespread{0.9}\sf, % reduce line spacing and use typewriter font 44 % keywordstyle=\bfseries\color{blue}, 45 % keywordstyle=[2]\bfseries\color{Plum}, 46 % commentstyle=\sf\itshape\color{OliveGreen}, % green and italic comments 47 % identifierstyle=\color{identifierCol}, 48 % stringstyle=\sf\color{Mahogany}, % use sanserif font 49 stringstyle=\tt, % use sanserif font 45 50 mathescape=true, 46 columns=fixed, 47 aboveskip=4pt, % spacing above/below code block 48 belowskip=3pt, 51 % columns=fixed, 52 columns=fullflexible, 53 % aboveskip=4pt, % spacing above/below code block 54 % belowskip=3pt, 49 55 keepspaces=true, 50 56 tabsize=4, … … 54 60 showspaces=false, 55 61 showstringspaces=false, 62 showlines=true, % show blank lines at end of code 56 63 escapechar=\$, 57 64 xleftmargin=\parindentlnth, % indent code to paragraph indentation 58 65 moredelim=[is][\color{red}\bfseries]{**R**}{**R**}, % red highlighting 59 morekeywords=[2]{accept, signal, signal_block, wait, waitfor}, 66 morekeywords=[2]{accept, signal, signal_block, wait, waitfor, waituntil}, 67 abovecaptionskip=5pt, 60 68 } 61 69 -
doc/theses/colby_parsons_MMAth/text/CFA_intro.tex
r1e6cecb re41c4c6 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; } -
doc/theses/colby_parsons_MMAth/text/frontpgs.tex
r1e6cecb re41c4c6 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 -
doc/theses/colby_parsons_MMAth/text/intro.tex
r1e6cecb re41c4c6 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. -
doc/theses/colby_parsons_MMAth/thesis.tex
r1e6cecb re41c4c6 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. 8 \usepackage{fullpage,times,comment} 9 \usepackage{textcomp} 16 10 \usepackage{epic,eepic} 17 11 \usepackage{dirtytalk} -
doc/theses/colby_parsons_MMAth/version
r1e6cecb re41c4c6 1 0.0. 01 0.0.15
Note: See TracChangeset
for help on using the changeset viewer.