COOKIES: By using this website you agree that we can place Google Analytics Cookies on your device for performance monitoring. |
University of Cambridge > Talks.cam > Computer Laboratory Programming Research Group Seminar > Continuation-Passing C: Program Transformations for Compiling Concurrency in an Imperative Language
Continuation-Passing C: Program Transformations for Compiling Concurrency in an Imperative LanguageAdd to your list(s) Download to your calendar using vCal
If you have a question about this talk, please contact Raoul-Gabriel Urma. Most computer programs are concurrent ones: they need to perform several tasks at the same time. Threads and events are two common techniques to implement concurrency. Events are generally more lightweight and efficient than threads, but also more difficult to use. Additionally, they are often not powerful enough; it is then necessary to write hybrid code, that uses both preemptively-scheduled threads and cooperatively-scheduled event handlers, which is even more complex. In this talk, we show that concurrent programs written in threaded style can be translated automatically into efficient, equivalent event-driven programs through a series of proven source-to-source transformations. We first propose Continuation-Passing C, an extension of the C programming language for writing concurrent systems that provides very lightweight, unified (cooperative and preemptive) threads. CPC programs are processed by the CPC translator to produce efficient sequentialized event-loop code, using native threads for the preemptive parts. We then define and prove the correctness of these transformations, in particular lambda lifting and CPS conversion, for an imperative language. Finally, we validate the design and implementation of CPC by comparing it to other thread librairies, and by exhibiting our Hekate BitTorrent seeder. We also justify the choice of lambda lifting by implementing eCPC, a variant of CPC using environments, and comparing its performances to CPC . This talk is part of the Computer Laboratory Programming Research Group Seminar series. This talk is included in these lists:
Note that ex-directory lists are not shown. |
Other listsResearch Seminars - Department of Biochemistry 2009/010 Climate Histories Interdisciplinary Seminar Series Beyond Academics Perspectives in Nano Information Processing Special Departmental SeminarsOther talksAre hospital admissions for people with palliative care needs avoidable and unwanted? Well-posedness of weakly hyperbolic systems of PDEs in Gevrey regularity. Mandatory Madness: Colonial Psychiatry and British Mandate Palestine, 1920-48 Genes against beans: favism, malaria and nationalism in the Middle East How language variation contributes to reading difficulties and “achievement gaps” Cambridge Rare Disease Summit 2017 From Euler to Poincare Thermodynamics de-mystified? /Thermodynamics without Ansätze? Lecture Supper: James Stuart: Radical liberalism, ‘non-gremial students’ and continuing education How to Deploy Psychometrics Successfully in an Organisation Epigenetics - Why DNA Is Not Your Destiny |