20 lines
1,001 B
Text
20 lines
1,001 B
Text
|
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. 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 Anders Magnusson, 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.
|