The compiler is one of the most important aspects of system software. When
any computer user develops a computer program, one must use some programming
language, rather than using a computer instruction set. This implies
that there must be the compiler of the programming language that
has been installed on the computer one uses, and otherwise the developed
program cannot be run.
There are some differences between a compiler and programming language.
Once language is designed, it must be kept unchanged (except when
it contains a mistake that has to be corrected), while the techniques for implementing
compilation might be changed over time. Hence people always
explore the more efficient and more advanced new techniques to raise the
quality of compilers.
The course similar to “The principles of Compilers” has become one of
the most important courses in computer science within higher institutes. According
to our knowledge, the development of compilation techniques evolves
in two directions. One is towards the improvement of the compilation techniques
for existing languages. Another is towards the research and development
of the compilation techniques of new languages. These new languages
include object-oriented languages, distributed languages, parallel languages,
etc. This book introduces the newest knowledge in the field, and explores
the compilation techniques suitable for the languages and computation. It
associates the compilation of programming languages with the translation of
natural languages in human brains so that the reader can easier understand
the principles of compilers. Meanwhile, it introduces the algebraic method of
compilation that belongs to formal technology.