Links¶
This section contains links and resources to other projects, papers and books.
Classical compilers¶
The following list gives a summary of some compilers that exist in the open source land.
LLVM
A relatively new and popular compiler. LLVM stands for low level virtual machine, a compiler written in C++. This is a big inspiration place for ppci! http://llvm.org
GCC
The gnu compiler. The famous open source compiler. https://gcc.gnu.org/
Other compilers¶
ACK
The amsterdam compiler kit. http://tack.sourceforge.net/
lcc
A retargetable C compiler. https://github.com/drh/lcc
sdcc
The small device c compiler. http://sdcc.sourceforge.net/
8cc
A small C compiler in C99. https://github.com/rui314/8cc
Other compilers written in python¶
zxbasic
Is a freebasic compiler written in python. http://www.boriel.com/wiki/en/index.php/ZXBasic
python-msp430-tools
A msp430 tools project in python. https://launchpad.net/python-msp430-tools
peachpy
A x86 64 assembly code generator. https://github.com/Maratyszcza/PeachPy
pycca
An x86 assembly code generator and compiler in python. https://github.com/campagnola/pycca
llvm-codegen-py
Machine code generation in python from llvm ir code. https://github.com/pfalcon/llvm-codegen-py
textx
A toolkit to create DSL tools. https://github.com/igordejanovic/textX
amoco
Static analysis of binaries. https://github.com/bdcht/amoco
pythran
Shivyc - A C compiler implemented in python
Citations¶
[Smith2004] | “A generalized algorithm for graph-coloring register allocation”, 2004, Michael D. Smith and Norman Ramsey and Glenn Holloway. |
[Runeson2003] | “Retargetable Graph-Coloring Register Allocation for Irregular Architectures”, 2003, Johan Runeson and Sven-Olof Nystrom. http://user.it.uu.se/~svenolof/wpo/AllocSCOPES2003.pdf |
[George1996] | “Iterated Register Coalescing”, 1996, Lal George and Andrew W. Appel. |
[Briggs1994] | “Improvements to graph coloring register allocation”, 1994, Preston Briggs, Keith D. Cooper and Linda Torczon |
[Chaitin1982] | “Register Allocation and Spilling via Graph Coloring”, 1982, G. J. Chaitin. |
[Cifuentes1998] | “Assembly to High-Level Language Translation”, 1998, Cristina Cifuentes and Doug Simon and Antoine Fraboulet. |
[Davidson1980] | “The Design and Application of a Retargetable Peephole Optimizer”, 1980, Jack W. Davidson and Christopher W. Fraser. |
[Baker1977] | “An Algorithm for Structuring Flowgraphs”, 1977, B.S. Baker. https://dl.acm.org/citation.cfm?id=321999 |