Projects / Continuation Passing C

Continuation Passing C

CPC (Continuation Passing C) is a programming language designed for writing concurrent systems. The CPC programmer manipulates very lightweight threads, choosing whether they should be cooperatively or preemptively scheduled at any given point; the CPC program is then processed by the CPC translator, which produces highly efficient event-loop code. This approach gives the best both worlds: the relative convenience of programming with threads, and the low memory usage of event-loop code. The semantics of CPC is defined as a source-to-source translation from CPC into plain C using a technique known as conversion into Continuation Passing Style. The current implementation of CPC has been used to write Hekate, a BitTorrent seeder designed to handle millions of simultaneous torrents and tens of thousands of simultaneously connected peers.

Operating Systems

RSS Recent releases

  •  19 Jun 2013 17:47

Release Notes: This release improves build and installation.

  •  10 Jun 2013 14:31

Release Notes: This release adds an almost-stable API and a decent wrapper script.

  •  13 Sep 2011 21:09

Release Notes: This release fixes compilation issues with Ocaml 3.12. It fixes compilation issues with flexlink (Windows).

  •  16 Nov 2010 22:52

    Release Notes: Initial public release.


    Project Spotlight

    TurnKey Trac Appliance

    A Trac appliance that is easy to use and lightweight.


    Project Spotlight


    A file transfer client.