2011
DOI: 10.1007/s10990-012-9084-5
|View full text |Cite|
|
Sign up to set email alerts
|

Continuation-Passing C, compiling threads to events through continuations

Abstract: In this paper, we introduce Continuation Passing C (CPC), a programming language for concurrent systems in which native and cooperative threads are unified and presented to the programmer as a single abstraction. The CPC compiler uses a compilation technique, based on the CPS transform, that yields efficient code and an extremely lightweight representation for contexts. We provide a proof of the correctness of our compilation scheme. We show in particular that lambda-lifting, a common compilation technique for… Show more

Help me understand this report
View preprint versions

Search citation statements

Order By: Relevance

Paper Sections

Select...
2
1
1
1

Citation Types

0
16
0
1

Year Published

2011
2011
2019
2019

Publication Types

Select...
4
1

Relationship

2
3

Authors

Journals

citations
Cited by 9 publications
(17 citation statements)
references
References 39 publications
(30 reference statements)
0
16
0
1
Order By: Relevance
“…CPS conversion has been applied at least to C [26], C++ [30], and Javascript [31]. To the best of our knowledge, CPC is the only public implementation for the C language, as well as the only one using lambda-lifting to avoid the runtime overhead of environments [24].…”
Section: Related Workmentioning
confidence: 99%
See 2 more Smart Citations
“…CPS conversion has been applied at least to C [26], C++ [30], and Javascript [31]. To the best of our knowledge, CPC is the only public implementation for the C language, as well as the only one using lambda-lifting to avoid the runtime overhead of environments [24].…”
Section: Related Workmentioning
confidence: 99%
“…Continuation-Passing C (CPC) [24] is an extension of the C language to write concurrent programs. The programmer writes synchronous code in threaded style, using common synchronisation techniques such as condition variables.…”
Section: Continuation-passing Cmentioning
confidence: 99%
See 1 more Smart Citation
“…Il existe deux manières d'exécuter les tâches : dans la première, la tâche est exécutée par le site sur lequel elle a été lancée (elle est liée au site) ; dans la seconde, elle exécutée par un thread natif dédié (la tâche est déliée). Un mécanisme similaire est utilisé par le formalisme CPC (Kerneis et al, 2010).…”
Section: Description De Dslunclassified
“…Continuation Passing C (CPC) [4,6] is a translator that converts a program written in threaded style into a program written with events and native system threads, at the programmer's choice. Threads in CPC, when compiled to events, are extremely cheap, roughly two orders of magnitude cheaper than in traditional programming systems; this encourages a somewhat unusual programming style.…”
Section: Introductionmentioning
confidence: 99%