Intermediate Code Representations
If you are interested in building
a front end for the GNU Compiler Collection (GCC) as a senior project,
read through the
gcc frontend,
visit the GCC wiki or
GNU GCC wiki.
To work with GCC your compiler must ultimately generate RTL
(register transfer language)
which is the intermediate language that gcc uses.
A python project that allows you to walk the tree of
intermediate representations
for GCC is SSA project
SSA is Static Single Assignment, which is similar to 3-address code.