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

Recent releases

  •  19 Jun 2013 10:35

    Release Notes: This release improves build and installation.

    •  10 Jun 2013 09:03

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

      •  13 Sep 2011 12:59

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

        •  16 Nov 2010 20:20

          Release Notes: Initial public release.


          Project Spotlight


          A Fluent OpenStack client API for Java.


          Project Spotlight

          TurnKey TWiki Appliance

          A TWiki appliance that is easy to use and lightweight.