Changeset 678c540 for doc/theses/colby_parsons_MMAth/text
- 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/text
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
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; } -
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 -
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.
Note:
See TracChangeset
for help on using the changeset viewer.