Code generation (also called [[instruction selection]]) is a [[program transformation]] performed in the back-ends of compilers. At this state of compilation [[intermediate representation]] expressions are transformed into sequences of machine code instructions. ----+++ Code Generator Generators * BURG: generate a CodeGenerator from a tree grammar that describes declaratively how IntermediateRepresentation expression patterns can be mapped to machine instructions. * [[http://www.eecs.harvard.edu/~nr/toolkit/][The New Jersey Machine-Code Toolkit]] * [[http://www.pdos.lcs.mit.edu/~engler/pldi96-abstract.html][vcode: a portable, very fast dynamic code generation system]] * [[http://directory.google.com/Top/Computers/Programming/Compilers/Code_Generator_Kits/][Google: Computers > Programming > Compilers > Code Generator Kits]] ----+++ Publications about Code Generation * Aho A V, Ganapathi M, Tjiang S W K "Code generation using tree matching and dynamic programming", TOPLAS v11 #4, pp491-516, Oct 1989 * Christopher T W, Hatcher P J "High quality code generation via bottom up tree pattern matching" Proceedings of the 13th annual ACM symposium on principles of programming languages, pp119-130, 1986 * Fraser C W, Wendt A L "Automatic generation of fast optimizing code generators" SIGPLAN Not. v23 #7, pp79-84, Jul. 1988 * Fraser C W "A language for writing code generators", SIGPLAN Not. v24 #7, pp238-245, Jul. 1987 * Schwartz R A, Yates J S "Dynamic programming and industrial strength instruction selection: code generation by tiring but not exhaustive, search" SIGPLAN Not. v23 #10, pp131-140, Oct. 1988 * [[Martin Bravenboer]] and [[Eelco Visser]]. [[Stratego.RewritingStrategiesForInstructionSelection][Rewriting Strategies for Instruction Selection]]. In S. Tison, _Rewriting Techniques and Applications ([[RTA]]'02)_. Volume ? of Lecture Notes in Computer Science. Springer Verlag. Copenhagen, Denmark, July 2002. -- Main.EelcoVisser - 08 Jan 2002, 09 Jun 2002 ---- CategoryTransformation | CategoryOptimization | ProgramOptimization | Contributions by Main.EelcoVisser