This textbook is intended for an introductory course on Compiler Design, suitable for use in an undergraduate programme in computer science or related fields.
Introduction to Compiler Design presents techniques for making realistic, though non-optimizing compilers for simple programming languages using methods that are close to those used in "real" compilers, albeit slightly simplified in places for presentation purposes. All phases required for translating a high-level language to machine language is covered, including lexing, parsing, intermediate-code generation, machine-code generation and register allocation. Interpretation is covered briefly.
Aiming to be neutral with respect to implementation languages, algorithms are presented in pseudo-code rather than in any specific programming language, and suggestions for implementation in several different language flavors are in many cases given. The techniques are illustrated with examples and exercises.
The author has taught Compiler Design at the University of Copenhagen for over a decade, and the book is based on material used in the undergraduate Compiler Design course there.
Additional material for use with this book, including solutions to
selected exercises, is available at http://www.diku.dk/~torbenm/ICD
This textbook is intended for an introductory course on Compiler Design, suitable for use in an undergraduate programme in computer science or related fields. The text presents techniques for making realistic, though non-optimizing, compilers for simple programming languages.
This textbook is intended for an introductory course on Compiler Design, suitable for use in an undergraduate programme in computer science or related fields.
Introduction to Compiler Design presents techniques for making realistic, though non-optimizing compilers for simple programming languages using methods that are close to those used in "real" compilers, albeit slightly simplified in places for presentation purposes. All phases required for translating a high-level language to machine language is covered, including lexing, parsing, intermediate-code generation, machine-code generation and register allocation. Interpretation is covered briefly.
Aiming to be neutral with respect to implementation languages, algorithms are presented in pseudo-code rather than in any specific programming language, and suggestions for implementation in several different language flavors are in many cases given. The techniques are illustrated with examples and exercises.
The author has taught Compiler Design at the University of Copenhagen for over a decade, and the book is based on material used in the undergraduate Compiler Design course there.
Additional material for use with this book, including solutions to
selected exercises, is available at http://www.diku.dk/~torbenm/ICD
It is a fairly concise but not over-simplified treatment of the topic
The material has been used in teaching for several years, so most errors and ambiguities have been eliminated
Also, the book does not require any specific programming language for projects etc.
Torben Ægidius Mogensen
Code generation Intermediate code Interpretation Syntax analysis Type check
From the reviews:
“This book provides a solid foundation to those who need to understand a main underpinning of computer science--how to design a compiler for a new language. … Numerous figures throughout the nine chapters help explain concepts. … A companion website … provides answers to selected problems, with emphasis on problems from the initial chapters of the book. Summing Up: Recommended. Upper-division undergraduates and above.” (M. B. DuBois, Choice, Vol. 49 (7), March, 2012)