C0 | Specification and Verification in Introductory Computer Science
About Downloads Tutorial References Courses
C0 language Downloads (beta, binary-only)

C0 is a small safe subset of the C programming language, augmented with contracts, specifically developed for teaching the course 15-122 Principles of Imperative Computation at Carnegie Mellon University.

C0 has not yet been publicly released, but beta distributions (binary only) are now available on the Downloads page.

Many people have contributed to C0 and its tool suite. The principal designers are Rob Arnold and Frank Pfenning; additional contributors include Laura Abbott, Tom Cortina, Ian Gillis, Jason Koenig, William Lovas, Karl Naden, Rob Simmons, Nathan Snyder, Anand Subramanian, and Jakob Uecker.

The development of C0 and the 15-122 course curriculum has been supported by the MSR-CMU Center for Computational Thinking under a project on Specification and Verification in Introductory Computer Science and by a gift from Google for the development of CMU's introductory undergraduate courses.

Frank Pfenning