© 2017

A Practical Approach to Compiler Construction

  • Presents a practically-oriented introduction to compiler design

  • Explains the fundamental principles of programming language implementation

  • Shows how a compiler can be constructed, with and without the use of compiler construction tools


Part of the Undergraduate Topics in Computer Science book series (UTICS)

Table of contents

  1. Front Matter
    Pages i-xv
  2. Des Watson
    Pages 1-12
  3. Des Watson
    Pages 13-36
  4. Des Watson
    Pages 37-73
  5. Des Watson
    Pages 75-93
  6. Des Watson
    Pages 95-139
  7. Des Watson
    Pages 141-175
  8. Des Watson
    Pages 177-203
  9. Des Watson
    Pages 205-234
  10. Des Watson
    Pages 235-245
  11. Back Matter
    Pages 247-254

About this book


This book provides a practically-oriented introduction to high-level programming language implementation. It demystifies what goes on within a compiler and stimulates the reader's interest in compiler design, an essential subject of computer science. Programming language analysis and translation techniques are used in many software application areas. 

A Practical Approach to Compiler Construction covers the fundamental principles of the subject in an accessible way. It presents the necessary background theory and shows how how it can be applied to implement complete compilers. A step-by-step approach, based on a standard compiler structure is adopted, presenting up-to-date techniques and examples. Strategies and designs are described in detail to guide the reader in implementing a translator for a programming language.

A simple high-level language, loosely based on C, is used to illustrate aspects of the compilation process. Code examples in C are included, together with discussion and illustration of how this code can be extended to cover the compilation of more complex languages. Examples are also given of the use of the flex and bison compiler construction tools. Lexical and syntax analysis is covered in detail together with a comprehensive coverage of semantic analysis, intermediate representations, optimisation and code generation. Introductory material on parallelisation is also included. 

Designed for personal study as well as for use in introductory undergraduate and postgraduate courses in compiler design, the author assumes that readers have a reasonable competence in programming in any high-level language.



Code Generation Compiler Construction Interpreters Programming Language Implementation Syntax Analysis

Authors and affiliations

  1. 1.Department of InformaticsSussex UniversityBrightonUnited Kingdom

About the authors

Des Watson works in the field of compiler design and development. He has extensive experience in research and both undergraduate and postgraduate teaching in programming language design and implementation at the University of Sussex, UK. He also works with commercial organisations, particularly in the field of compiler optimisation of code for embedded systems.  

Bibliographic information

Industry Sectors
IT & Software
Consumer Packaged Goods
Finance, Business & Banking
Oil, Gas & Geosciences


 “I found this book easy to read, with relevant examples and a good set of references. For me, its most interesting feature is the strategy used to support a particular audience: people who need to process text but will not write production compilers. The material itself has been standard for 30 years.” (Computing Reviews, August, 2017)

“The book is an excellent resource for anyone who is looking for an introduction to the basic structure and concepts of a compiler. Better-suited works are available for an in-depth analysis.” (Jonas Devlieghere, Computing Reviews , February, 16, 2018)