Gabriel Kerneis — Research

Home | Research | Software | Contact

I currently work as a PhD student on CPC, an experimental dialect of the C language, designed to write concurrent programs. A CPC program is compiled into plain C through a series of source-to-source transformations.

My work so far has been to prove the correctness of the transformations performed by the CPC translator. I then reimplemented it from scratch in OCaml (based on an former prototype written in Common Lisp by Juliusz Chroboczek). I also performed a series of benchmarks and I am involved in the development of Hekate, a BitTorrent seeder written in CPC.

More information about the CPC translator, including source code, is available on the dedicated page. A long paper about CPC, describing both theoretical and experimental aspects, is currently pending review; it contains everything you might wish know, and probably a little bit more. Some more benchmarking results are available in a technical report. I also gave several talks about CPC; the slides are available on demand.

Gabriel Kerneis, Juliusz Chroboczek. Continuation-Passing C, compiling threads to events through continuations. Submitted for publication (inria-00537964). 2012.

Gabriel Kerneis, Juliusz Chroboczek. Lambda-lifting and CPS conversion in an imperative language. Technical report, Université Paris Diderot (hal-00669849). 2012.

Gabriel Kerneis, Juliusz Chroboczek. CPC: programming with a massive number of lightweight threads. PLACES'11 (hal-00563369). 2011.

Gabriel Kerneis. CPC, compiling threads to events efficiently. ACACES'10 (poster session). 2010.
A0 poster (5,1 MB).

Gabriel Kerneis, Juliusz Chroboczek. Are events fast?. Technical report, Université Paris Diderot (hal-00434374). 2009.
Experimental setup: how to benchmark a web server.

Gabriel Kerneis. CPC, des threads coopératifs par passage de continuation. M.Sc. thesis. 2008.

I also supervised Matthieu Boutier, who worked as an undergraduate student on an alternative version of CPC where local variables are saved in environments rather than lambda-lifted. You might be interested in Matthieu's thesis (in French).

Matthieu Boutier. Sauvegarde de variables locales en CPC. Undergraduate thesis. 2011.

Talks

2nd November 2011
Concurrence par Passage de Continuations (en C), Séminaire thésards, Paris.
6th September 2011
Concurrence par Passage de Continuations (en C), Journées PPS, Trouville, France.
2nd April 2011
CPC: programming with a massive number of lightweight threads, PLACES'11, Saarbrücken, Germany. Slides (pdf).
15th December 2010
A chthonian walk through Hekate, or How to seed the world with green threads, Séminaire thésards, Paris.
14th July 2010
CPC, compiling threads to events efficiently, ACACES'10 (poster session), Terrassa, Spain.
18th March 2010
Programmer avec des threads légers, retour d'expérience sur Hekate et CPC, GdT Programmation, Paris.
1st December 2009
Compiling threads with continuations in C, GdT Sémantique, Paris.
23rd October 2009
presentation of CPC with J. Chroboczek to the MIMOSA team (INRIA), Sophia-Antipolis.
21st October 2009
Threads, continuations et cotillons, Séminaire thésards, Paris.
17th April 2008
Continuation Passing C et le lambda-lifting de variables impératives, GdT Programmation, Paris.
26th March 2008
Continuation Passing C et le lambda-lifting de variables impératives, Séminaire thésards, Paris.

Hôtel Ibis Sainte Catherine, Brussels

If you travel to Brussels, I strongly advise you to avoid the Ibis hotel (Sainte Catherine) since they do not respect reservations. A friend of mine booked a room for a workshop taking place in Brussels but his reservation has been cancelled without further notice.