Skip to content

compiler-principle

Compilers Principles, Techniques and Tools Second Edition(aka dragon book) is really an amazing book, as mentioned in Chapter 1 Introduction

This book is is about how to design and implement compilers. We shall discover that a few basic ideas can be used to construct translators for a wide variety of languages and machines. Besides compilers, the principles and techniques for compiler design are applicable to so many other domains that they are likely to be reused many times in the career of a computer scientist. The study of compiler writing touches up on programming languages, machine architecture, language theory, algorithms, and software engineering.

As mentioned in the paragraph above, the study of compiler is an interdiscipline involving computer science(programming languages, machine architecture, algorithms, and software engineering) and language theory, so the book may be hard to understand if lacking experience in programming, grasp of common data structure(especially tree which is mainly used in the front end, graph which is mainly used in the back end) and algorithms(especially recursion).

The language theory in the paragraph above mainly refers to the formal language theory, I have create a repository Automata-and-formal-language to record my knowledge of formal language theory and automata theory. A basic understanding of these theories will help understand the book.

The data structure mentioned in the book can be found in my repository data-structure.

The algorithm mentioned in the book can be found in my repository algorithm.

Beside the book, this repository also contain some material supplemented to help understand.