The SubC Compiler

SubC is a fast and simple public domain compiler for a clean subset of the C programming language. It can compile itself and passes gcc -Wall -pedantic. Its internals are described in detail in the book

Practical Compiler Construction

Note that SubC is a teaching vehicle rather than a production compiler. Check the README files to find out what it can and cannot do. If you are planning to do something more serious with SubC, you may want to get the stable or experimental version rather than the book version.

SubC Compiler sources, book version (zip, ~75KB), README
SubC Compiler sources, current version (tgz, ~85KB), README
View the compiler sources online (book version)

Current Targets

Book Version Current Version
FreeBSD-386 FreeBSD-386
  FreeBSD-x86-64
  Linux-386
  Linux-x86-64
  NetBSD-x86-64
  Windows/386 via MinGW
  SubC now has an synthesizing back-end, which generates more efficient code than the book version of the compiler. It is included in the current branch and enabled by default.
 
The Windows runtime support code has been written by Jean-Marc Lienher (cod5.org). Many thanks for the great effort!

History of Changes


contact