This textbook explains all phases of a modern compiler: lexical analysis, parsing, abstract syntax, semantic actions, intermediate representations, instruction selection via tree matching, dataflow analysis, graph-colouring register allocation with coalescing, and runtime systems. It covers current techniques in code generation and register allocation, as well as functional and object-oriented languages, which are missing from most books on the topic. The author illustrates the most accepted and successful techniques in a concise way, rather than as an exhaustive catalogue of every possible variant. Detailed descriptions of the interfaces between modules of a compiler are illustrated with actual Java classes. A unique feature of the book is a well designed compiler implementation project in Java, including front-end and 'high-tech' back-end phases, so that students can build a complete working compiler in one semester. The textbook is meant for use in a one-semester first course for undergraduates in compiler design. Accompanying support software is available.
"Sinopsis" puede pertenecer a otra edición de este libro.
This textbook describes all phases of a modern compiler, including current techniques in code generation and register allocation, for imperative, functional and object-oriented languages. The author describes the most accepted and successful techniques, rather than giving an exhaustive catalogue of every possible variant. A unique feature is a compiler implementation project in Java, including front-end and 'high-tech' back-end phases.Review:
"Organization of book is excellent, chapter, section, material selection, presentation...Book is very readable, easy to understand." Deogun, Jitender S., University of Nebraska
"Sobre este título" puede pertenecer a otra edición de este libro.
(Ningún ejemplar disponible)
Si conoce el autor y el título del libro pero no lo encuentra en IberLibro, nosotros podemos buscarlo por usted e informarle por e-mail en cuanto el libro esté disponible en nuestras páginas web.Crear una petición