|
The Carbon project is meant to develop a compiler for a strict,
strongly-typed functional programming language similar to OCaml or SML. Among the goals of
the projects are:
-
Implementing a functional programming language that is
open to other programming languages, and that does not hinder the
integration of code written in different langauges with tedious
and error-prone bindings.
-
Obtaining a compiler that works as nicely as possible
with the development tools of the GNU family (compilers, linkers,
assemblers, profilers, debuggers, configuration tools, lexers
and parsers generators).
-
Experimenting the compilation and the use of features, such as
type classes, not available in OCaml. In general, Carbon
aims at being simpler than OCaml, and by being easily coupled
with other languages it should favor multi-language development rather than
trying to be a all-in-one language. OCaml is being used in the
early stages of the development until the compiler will be able
to bootstrap itself.
-
Designing a clean and well-structured compiler that is easily
understandable and modifiable, especially for didactical
purposes.
-
Last but not least, having fun coding a complex compiler.
At this stage the Carbon compiler outputs C code (using some of
the GCC
C extensions) but other possibilities will be taken into
account for the future, in particular:
The runtime system currently makes use of the Boehm garbage
collector.
Have fun with Carbon!
|