10 November 2010: To-Do list for full release here, though you might prefer to locate that page from the index.

10 November 2010: S-expression syntax finally retired. Still need to update the specification.

7 October 2010: VIM and Emacs modes now in the tree.

25(?) September 2010: Mixfix implementation completed.

31 August 2010: Instructions for fetching via mercurial.

26 August 2010: Doc describing implementation of layout.



The BitC Programming Language

BitC is a new systems programming language. It seeks to combine the flexibility, safety, and richness of Standard ML or Haskell with the low-level expressiveness of C.

Please Note: BitC has just made a transition from a LISP-like (s-expression) syntax to a more conventional syntax. The specification and the web site haven't caught up yet, and of course some of the published papers predate the change.


BitC is a programming language that tries to meet the following objectives:

As a litmus test, it is possible to write a MPEG decoder or SHA-1 hash algorithm in BitC that is fully safe, but performs competatively with the C implementation. Today, that can't be done in SML, O'Caml, or Haskell.

Target Platforms

The BitC bootstrap compiler compiles to portable ANSI C code. By tweaking a single header file and writing a target-specific header file and writing a procedure object thunk function it is possible to port the research compiler to essentially any target platform. The current source tree is known to work on IA32 and AMD64/X86-64 targets, and includes untested ports to SPARC and SPARC64. Contributions for new targets would be very welcome.

Mailing Lists

At present, the main mailing list for the BitC project is bitc-dev. These lists are intended primarily for developers and architects. When a release exists, we will add a user-oriented list as well.