Changeset e41c4c6


Ignore:
Timestamp:
Apr 2, 2023, 8:20:16 AM (13 months ago)
Author:
caparsons <caparson@…>
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.
Message:

Merge branch 'master' of plg.uwaterloo.ca:software/cfa/cfa-cc

Location:
doc/theses/colby_parsons_MMAth
Files:
7 edited

Legend:

Unmodified
Added
Removed
  • doc/theses/colby_parsons_MMAth/Makefile

    r1e6cecb re41c4c6  
    101101        -${BibTeX} ${Build}/${basename $@}
    102102        # Some citations reference others so run again to resolve these citations
    103         ${LaTeX} ${basename $@}.tex
    104         -${BibTeX} ${Build}/${basename $@}
     103#       ${LaTeX} ${basename $@}.tex
     104#       -${BibTeX} ${Build}/${basename $@}
    105105        # Make index from *.aux entries and input index at end of document
    106106        makeglossaries -q -s ${Build}/${basename $@}.ist ${Build}/${basename $@}
  • doc/theses/colby_parsons_MMAth/style/cfa-format.tex

    r1e6cecb re41c4c6  
    1111\lstdefinestyle{defaultStyle}{
    1212  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
    1921  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,
    2326  keepspaces=true,
    2427  tabsize=4,
     
    3740\lstdefinestyle{cfaStyle}{
    3841  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
    4550  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,
    4955  keepspaces=true,
    5056  tabsize=4,
     
    5460  showspaces=false,
    5561  showstringspaces=false,
     62  showlines=true,                                                       % show blank lines at end of code
    5663  escapechar=\$,
    5764  xleftmargin=\parindentlnth,                     % indent code to paragraph indentation
    5865  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,
    6068}
    6169
  • doc/theses/colby_parsons_MMAth/text/CFA_intro.tex

    r1e6cecb re41c4c6  
    1111References 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}.
    1212
    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}]
    1414int i = 2;
    1515int & ref_i = i;            // declare ref to i
     
    3232
    3333
    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}]
    3535int foo() { printf("A\n");  return 0;}
    3636int foo( int bar ) { printf("B\n"); return 1; }
  • doc/theses/colby_parsons_MMAth/text/frontpgs.tex

    r1e6cecb re41c4c6  
    5858% D E C L A R A T I O N   P A G E
    5959% -------------------------------
    60   % The following is the sample Delaration Page as provided by the GSO
     60  % The following is the sample Declaration Page as provided by the GSO
    6161  % December 13th, 2006.  It is designed for an electronic thesis.
    6262  \noindent
     
    7575\begin{center}\textbf{Abstract}\end{center}
    7676
    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.
     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.
     78
     79This 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.
    7880
    7981\cleardoublepage
  • doc/theses/colby_parsons_MMAth/text/intro.tex

    r1e6cecb re41c4c6  
    55% ======================================================================
    66
    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 upon the original ideas by improving performance, productivity, and safety.
     7Concurrent 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  
    11% 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)
    102
    113\documentclass[letterpaper,12pt,titlepage,oneside,final]{book}
     
    146
    157% Latex packages used in the document.
     8\usepackage{fullpage,times,comment}
     9\usepackage{textcomp}
    1610\usepackage{epic,eepic}
    1711\usepackage{dirtytalk}
  • doc/theses/colby_parsons_MMAth/version

    r1e6cecb re41c4c6  
    1 0.0.0
     10.0.15
Note: See TracChangeset for help on using the changeset viewer.