Headline News
Female Mind Control System Review (October 7, 2015 4:22 pm)
Fat Burning Bible Review (October 7, 2015 4:16 pm)
The Salvation Diet Review (October 7, 2015 4:13 pm)
Erectile Booster Method Review (October 5, 2015 8:49 pm)
Nail Cure Pro Review (October 5, 2015 4:25 pm)

The BitC Programming Language

bitcBitC 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.

Objectives

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

  • Provide full support for fine-grain data structure specifications, including hardware-defined data structures. Representation requirements are sometimes prescriptive! Check out defrepr.
  • Preserve mutability as a first-class notion in the language. Monads, effect types, and the like are wonderful things, but languages that rely on them have yet to demonstrate acceptable performance on systems problems.
  • Provide a modern type system in the style of Haskell or ML, including type inference and type classes, without giving up data structure representation and mutability.
  • Provide first class functions and type-safe abstraction mechanisms to programmers who can’t give up performance to get them:
    def add-one(x) = 1 + x
    add-one: fn 'a -> 'a where Arith('a)
    
  • Provide a complete formal semantics in automated form, so that it is possible to reason formally about specialized BitC programs.
  • Develop the proving technology necessary to do useful verification about programs written in such a language.

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.

Passionate Blogger. Web Surfer. Champion of Life ▲

Leave A Comment