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 http://pythran.readthedocs.io/en/latest/ * Shivyc - A C compiler implemented in python https://github.com/ShivamSarodia/ShivyC Other C-related tools written in python --------------------------------------- pycparser 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