Changeset 16948499
- Timestamp:
- May 7, 2019, 10:45:33 AM (6 years ago)
- Branches:
- ADT, arm-eh, ast-experimental, cleanup-dtors, enum, forall-pointer-decay, jacob/cs343-translation, jenkins-sandbox, master, new-ast, new-ast-unique-expr, pthread-emulation, qualifiedEnum
- Children:
- 9e6d652
- Parents:
- 63b05ba
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
doc/papers/concurrency/Paper.tex
r63b05ba r16948499 245 245 \abstract[Summary]{ 246 246 \CFA is a polymorphic, non-object-oriented, concurrent, backwards-compatible extension of the C programming language. 247 This paper discusses the design philosophy and implementation of its advanced control-flow and concurren cy/parallelismfeatures, along with the supporting runtime.248 These features are created from scratch as ISO C has only low-level and/or unimplemented concurrency, so C programmers continue to rely on library features ,like C pthreads.247 This paper discusses the design philosophy and implementation of its advanced control-flow and concurrent/parallel features, along with the supporting runtime. 248 These features are created from scratch as ISO C has only low-level and/or unimplemented concurrency, so C programmers continue to rely on library features like C pthreads. 249 249 \CFA introduces modern language-level control-flow mechanisms, like coroutines, user-level threading, and monitors for mutual exclusion and synchronization. 250 The design contributions provide significant programmer simplification and safety by eliminating spurious wakeup and barging in monitors. 251 As well, multiple monitors can be safely acquired \emph{simultaneously} (deadlock free), which is fully integrated with the monitor synchronization mechanisms. 252 These features also integrate with the \CFA polymorphic type-system and exception handling, while respecting the expectations and style of C programmers. 253 Experimental results show comparable performance of the new features with similar (weaker) mechanisms in other concurrent programming-languages. 250 Library extension for executors, futures, and actors are built on these basic mechanisms. 251 The runtime provides significant programmer simplification and safety by eliminating spurious wakeup and reducing monitor barging. 252 The runtime also ensures multiple monitors can be safely acquired \emph{simultaneously} (deadlock free), and this feature is fully integrated with all monitor synchronization mechanisms. 253 All language features integrate with the \CFA polymorphic type-system and exception handling, while respecting the expectations and style of C programmers. 254 Experimental results show comparable performance of the new features with similar mechanisms in other concurrent programming-languages. 254 255 }% 255 256 … … 265 266 \section{Introduction} 266 267 267 This paper discusses the design philosophy and implementation of advanced language-level control-flow and concurren cy/parallelism extensions in \CFAand its runtime.268 This paper discusses the design philosophy and implementation of advanced language-level control-flow and concurrent/parallel features in \CFA~\cite{Moss18} and its runtime. 268 269 \CFA is a modern, polymorphic, non-object-oriented\footnote{ 269 270 \CFA has features often associated with object-oriented programming languages, such as constructors, destructors, virtuals and simple inheritance. 270 271 However, functions \emph{cannot} be nested in structures, so there is no lexical binding between a structure and set of functions (member/method) implemented by an implicit \lstinline@this@ (receiver) parameter.}, 271 backwards-compatible extension of the C programming language ~\cite{Moss18}.272 backwards-compatible extension of the C programming language. 272 273 Within the \CFA framework, new control-flow features are created from scratch. 273 274 ISO \Celeven defines only a subset of the \CFA extensions, where the overlapping features are concurrency~\cite[\S~7.26]{C11}. … … 337 338 \item 338 339 providing statically type-safe interfaces that integrate with the \CFA polymorphic type-system and other language features. 340 \item 341 library extensions for executors, futures, and actors built on the basic mechanisms. 339 342 \item 340 343 a runtime system with no spurious wakeup.
Note: See TracChangeset
for help on using the changeset viewer.