- Timestamp:
- May 2, 2023, 11:10:08 AM (21 months ago)
- Branches:
- ADT, ast-experimental, master
- Children:
- d1c51b1
- Parents:
- 302a16c
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
doc/theses/colby_parsons_MMAth/text/frontpgs.tex
r302a16c r6c7227b 80 80 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. 81 81 82 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. 82 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. 83 \CFA is a non-object-oriented programming language that extends C. 84 The foundation for concurrency in \CFA was laid by Thierry Delisle~\cite{Delisle18}, who implemented coroutines, user-level threads, and monitors. 85 This thesis builds upon that work and introduces a suite of new concurrent features as its main contribution. 86 The features include a @mutex@ statement (similar to a \CC scoped lock or Java \lstinline[language=Java]{synchronized} statement), Go-like channels and \lstinline[language=Go]{select} statement, and an actor system. 87 The root ideas behind these features are not new, but the \CFA implementations extends the original ideas in performance, productivity, and safety. 83 88 84 89 \cleardoublepage
Note: See TracChangeset
for help on using the changeset viewer.