blob: bf10412f702fefe8eda28e1684d8722ffd52c5a6 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
|
The compiler is based on the original Portable C Compiler by S. C.
Johnson, written in the late 70's. Even though much of the compiler
has been rewritten, some of the basics still remain.
The intention is to write a C99 compiler while still keeping it small,
simple, fast and understandable. I think of it as if it shall be able
to compile and run on PDP11 (even if it may not happen in reality).
But with this in mind it becomes important to think twice about what
algorithms are used.
The compiler is conceptually structured in two parts; pass1 which is
language-dependent, does parsing, typechecking and build trees, and
pass2 which is mostly language-independent.
About 50% of the frontend code and 80% of the backend code has been
rewritten. Most stuff is written by me, with the exception of the
data-flow analysis part and the SSA conversion code which is written
by Peter A Jonsson, and the Mips port that were written as part of a
project by undergraduate students at LTU.
|