Compilers Principles Techniques And Tools 3rd Edition.pdf NEW!
Use of the BookIt takes at least two quarters or even two semesters to cover all or most of the material in this book. It is common to cover the first half in an undergraduate course and the second half of the book stressing code optimization in a second course at the graduate or mezzanine level. Here is an outline of thechapters:Chapter 1 contains motivational material and also presents some background issues in computer architecture and programming-language principles.Chapter 2 develops a miniature compiler and introduces many of the important concepts, which are then developed in later chapters. The compiler itselfappears in the appendix.Chapter 3 covers lexical analysis, regular expressions, finite-state machines, andscanner-generator tools. This material is fundamental to text-processing of allsorts.Chapter 4 covers the major parsing methods, top-down (recursive-descent, LL)and bottom-up (LR and its variants).Chapter 5 introduces the principal ideas in syntax-directed donations andsyntax-directed translations.Chapter 6 takes the theory of Chapter 5 and shows how to use it to generateintermediate code for a typical programming language.Chapter 7 covers run-time environments, especially management of the run-timestack and garbage collection.Chapter 8 is on object-code generation. It covers the construction of basic blocks,generation of code from expressions and basic blocks, and register-allocationtechniques.Chapter 9 introduces the technology of code optimization, including ow graphs,data- ow frameworks, and iterative algorithms for solving these frameworks.Chapter 10 covers instruction-level optimization. The emphasis is on the extraction of parallelism from small sequences of instructions and scheduling themon single processors that can do more than one thing at once.Chapter 11 talks about larger-scale parallelism detection and exploitation. Here,the emphasis is on numeric codes that have many tight loops that range over multidimensional arrays.Chapter 12 is on interprocedural analysis. It covers pointer analysis, aliasing,and data- ow analysis that takes into account the sequence of procedure callsthat reach a given point in the code.
Compilers Principles Techniques And Tools 3rd Edition.pdf