Sunday, October 28, 2012

Compiler books for optimizations

Compiler books are an important asset during the course of phd, not only as a reference book but also as a inspiration source. Sometimes you just have to apply a number of old and well know techniques to your topic to achieved the desired results. I recently started looking for a number of compilers books that i had access to a number of books from the university's library. Some of them are:





Optimizing Compilers for Modern Architectures: A Dependence-based Approach. One of the best compiler books that covers current state of art optimizations. A phd student must first start reading this book before starting working with transformations and optimizations. The book covers classic topics of compiler optimization such as: vectorization, parallelization, enhancing find and coarse grain parallelism, memory hierarchy management, and instruction scheduling. The book contains a large number of examples for explaining the performance impact  and drive the programmer to write their programs for obtaining best possible performance. (Amazon)






Front Cover
The Compiler Design Handbook. There are two versions of the books. The first edition focus mostly on well know transformation techniques, such as instruction scheduling, data flow analysis SSA form, register Allocation etc. On the other hand the second editions refresh for the new advances in the compiler regions, such as Worst-Case Execution Time, energy analysis static program, energy-aware compiler optimizations, analysis for security, and dynamic compilation. Each chapter is self-contained and treats its topic in depth. The book offers a unique opportunity for researchers to refresh and update their knowledge, refine their skills, and prepare for future innovations.






Front Cover
Compiler Construction: Principles and Practice. This book is introductory to the compilers. The authors use mostly the C-like language in their examples. If you are curious to understand how the theory about compilers applies to the C language, then this is your book!  (Amazon)






 

Engineering a Compiler:  Mostly for introduction, but also some advance topics, such as  object-oriented languages, construction of static single assignment forms, instruction scheduling, and graph-coloring register allocation.









Compilers: Principles, Techniques, and Tools. The classic dragon book. I studied a bit during the undergraduate course. Only introductory and a bit outdated. However, it still remains a reference point for newcomers. (Amazon)









Programming Language Pragmatics: Comprehensive programming language textbook. Taking the perspective that language design and language implementation are tightly interconnected. Includes topics and comparison between many languages including: Java 7, C++, C# 3.0, F#, Fortran 2008, Ada 2005, Scheme R6RS, and Perl 6.














Advanced Compiler Design & Implementation. This book is a step ahead from the introductory books. It starts describing more realistic implementations and gived a coverage for the optimization techniques. It gives good detail on all major approaches and is up-to-date on important techniques like SSA form and partial redundancy information. The downsize is the size of the book. (Amazon).


No comments:

Post a Comment