High Level Concurrency in C∀
dc.contributor.author | Parsons, Colby | |
dc.date.accessioned | 2023-09-25T13:58:16Z | |
dc.date.available | 2023-09-25T13:58:16Z | |
dc.date.issued | 2023-09-25 | |
dc.date.submitted | 2023-09-13 | |
dc.description.abstract | Concurrent programs are notoriously hard to write 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 the new programming language C∀, all of which are implemented with the aim of improving the performance, productivity, and safety of concurrent programs. C∀ is a non-object-oriented programming language that extends C. The foundation for concurrency in C∀ was laid by Thierry Delisle [15], 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 a mutex statement (similar to a C++ scoped lock or Java synchronized statement), Go-like channels and select statement, and an actor system. The root ideas behind these features are not new, but the C∀ implementations extends the original ideas in performance, productivity, and safety. | en |
dc.identifier.uri | http://hdl.handle.net/10012/19932 | |
dc.language.iso | en | en |
dc.pending | false | |
dc.publisher | University of Waterloo | en |
dc.subject | concurrency | en |
dc.subject | programming languages | en |
dc.subject | channel | en |
dc.subject | actor system | en |
dc.subject | parallelism | en |
dc.subject | locking | en |
dc.subject | synchronization | en |
dc.subject | threading | en |
dc.subject | select | en |
dc.subject | channels | en |
dc.title | High Level Concurrency in C∀ | en |
dc.type | Master Thesis | en |
uws-etd.degree | Master of Mathematics | en |
uws-etd.degree.department | David R. Cheriton School of Computer Science | en |
uws-etd.degree.discipline | Computer Science | en |
uws-etd.degree.grantor | University of Waterloo | en |
uws-etd.embargo.terms | 0 | en |
uws.contributor.advisor | Buhr, Peter | |
uws.contributor.affiliation1 | Faculty of Mathematics | en |
uws.peerReviewStatus | Unreviewed | en |
uws.published.city | Waterloo | en |
uws.published.country | Canada | en |
uws.published.province | Ontario | en |
uws.scholarLevel | Graduate | en |
uws.typeOfResource | Text | en |