A refreshing antidote to heavy theoretical tomes, this book is a concise, practical guide to modern compiler design and construction by an acknowledged master. Readers are taken step-by-step through each stage of compiler design, using the simple yet powerful method of recursive descent to create a compiler for Oberon-0, a subset of the author's Oberon language. A disk provided with the book gives full listings of the Oberon-0 compiler and associated tools. The hands-on, pragmatic approach makes the book equally attractive for project-oriented courses in compiler design and for software engineers wishing to develop their skills in system software.
The book “Compilerbau” by Nikolaus Wirth managed to present the reader a valuable and broad overview of theoretical informatics, language theory and compiler creation. All theoretical approaches are well formulated and form the basis for today’s advancements in this topic. A huge recommendation for everyone interested.
Wow. Wirth manages to cover almost everything you want to know, in less space, and with less bullshit than any other compiler book I've ever read. What a gem! Had no idea this existed until a week ago and now it's pushed _Modern Compiler Construction_ by Appel out of first place for me.
First thing I want to mention is that this book is NOT from 1977. Per Niklaus Wirth: "The language Oberon, published in 1988, has a long history. It is a descendant of Algol 60 (1960), Pascal (1970), and Modula (1979)"
Per Wirth, the first edition of this book dates to 1996 and the book was slightly revised in 2005. I am currently reading the latter version. The book uses Oberon-0 a predecessor to Oberon.
Now as to the coverage of subject matter: This book is short, but it offered me the most precise, pragmatic and readable definitions of everything around compiler technology I have read so far. I am reading both versions of Aho (Lam), Sethi, Ullman 1989 and 2006 and although more thorough and very formal, they seem to me less precise than the formalisms and explanations that Wirth provides.
This book is written by someone that's been there, done that. A person that has lived through all the complexity then thrown it away, demystified and distilled it to its essential components.
Wirth's book is quite fascinating, in that it shows on relatively few pages how to write a complete compiler for small programming language (think of a simplified version of Pascal). The book is essentially a tutorial on how to step by step refine a parser from the point of building up a syntax tree, over checking the correctness of a program's structure to an actual compiler. There is very little theory here, only a few pages in the beginning that do not really explain anything, so do not expect to get a complete theoretical understanding of everything you are doing here (ideally, you would have acquired the theory before reading this book). But you get a very good idea of how a compiler works by following along the practical implementation, each part of which is preceded by a short but meaningful motivation by Wirth. This is the first book I have read on compiler construction, and I am keen to see how it will help me gaining a deeper understanding with other sources.
Despite it's age, this is still a pretty good introductory book on the principles of compiler construction. Don't get put off by the fact that it uses the language Oberon to build a compiler for a subset of the same, it's easy enough to understand even if you've never seen the language before. Being able to understand same basic Assembler won't hurt though.