source: doc/papers/ibm_CASCON19/abstract.txt @ 788614c

ADTarm-ehast-experimentalenumforall-pointer-decayjacob/cs343-translationnew-ast-unique-exprpthread-emulationqualifiedEnum
Last change on this file since 788614c was 487198c, checked in by Thierry Delisle <tdelisle@…>, 5 years ago

Apparently forgot to commit the CASCON19 presentation

  • Property mode set to 100644
File size: 2.1 KB
Line 
1Synchronous Programming with User-Level Threads in C∀
2
3When computations cannot be satisfied immediately, programmers must use
4one of two paradigms, Synchronous Programming and Asynchronous Programming.
5This presentation discusses the benefits Synchronous Programming over
6Asynchronous Programming and what requirements exist to use this paradigm.
7It also discusses how C∀, a concurrent and backwards-compatible extension
8of the C programming language, has powerful tools available for simple and
9efficient Synchronous Programming. These tools include user-level threads
10and high-level locking mechanisms which simply solve common problems.
11Finally, the presentation shows different techniques to combine these
12features with existing code to either uses blocking operations provided by
13the kernel or is built according to an asynchronous paradigm.
14
15
16
17
18
19
20
21
22
23C∀ is a polymorphic, non-object-oriented, concurrent, backwards-compatible
24extension of the C programming language. This paper discusses the design
25philosophy and implementation of its advanced control-flow and concurrent/parallel
26features, along with the supporting runtime written in C∀. These features
27are created from scratch as ISO C has only low-level and/or unimplemented
28concurrency, so C programmers continue to rely on library features like pthreads.
29C∀ introduces modern language-level control-flow mechanisms, like generators,
30coroutines, user-level threading, and monitors for mutual exclusion and
31synchronization. The runtime provides significant programmer simplification
32and safety by eliminating spurious wakeup and monitor barging. The runtime
33also ensures multiple monitors can be safely acquired simultaneously (deadlock free),
34and this feature is fully integrated with all monitor synchronization mechanisms.
35All control-flow features integrate with the C∀ polymorphic type-system and
36exception handling, while respecting the expectations and style of C programmers.
37Experimental results show comparable performance of the new features with similar
38mechanisms in other concurrent programming languages.
39KEYWORDS
40generator, coroutine, concurrency, parallelism, thread, monitor, runtime, C, C∀ (Cforall)
Note: See TracBrowser for help on using the repository browser.