1/What is the principle of compiling?
A: Compiling in my opinion is a kind of work between high-level languages (such as C language) and assembly language (machine language).
Because a simple hardware computer can only execute assembly statements, a piece of hardware that is fully corresponding to the computer's CPU instructions.
So you need a medium in between two languages, that is the principle of compilation.
2/What are the benefits of learning the compiling principle?
Answer: Learn compiling principle according to the Netizen answer:
1, it can be easier to understand in a language what is the equivalent of the wording, which is a difference
2, can be more objective to compare the differences between different languages
3, more difficult to be a particular language of the advocates of the flicker
4, learning a new language is more efficient and higher
5, in fact, from language A to language B is a common demand, learn how to compile principles to deal with such requirements will be more skilled
3/Do not learn what is the loss?
A: As a software development professional students, in order to learn every high-level language, even if it is better to understand the surface meaning,
But I don't know how it works on the lower level. You learn it more by pursuing the nature of the programming language, as it does in registers
In the allocation will be used to the greedy algorithm, dead code elimination will be used in the graph theory algorithm, data flow analysis used in the FIXED-PO
int algorithm, lexical analysis and grammatical analysis used in the finite state machine and recursive descent such important ideas and so on, maybe you
Will not become a compiler developer later, but the compilation principle of learning to gain, what you think is enough to benefit you for life.
4/How to learn the compiling principle?
A: Students who have learned the course of compiling principles should have experience, a variety of grammar, various lexical grammar analysis algorithm, very killing people's patience and
The middle code generation and optimization, in fact, is not important in many scenarios (of course, this piece is important for the "compiler principle")
Semantic analysis deals with a lot of details, especially for more complex languages, and the final instruction generation, which may require reading various manuals,
Also more boring.
2016/9/9