转载地址:http://www.programcreek.com/2011/02/how-compiler-works/
简单讲解了编译器的工作原理。
How compiler works is not easy to explain in one sentence. The best way is to use an example.
A compiler is a computer program that transforms source code written in a high-level programming language into a lower level language.
Basically, a compiler consists the following phases: Lexical Analysis, Syntax Analysis, Semantic Analysis, IR Generation, IR Optimization, Code Generation, Optimization.

Given a sample program:

The following shows the output of each phase.
1. Lexical Analysis
Convert a program into sequence of of tokens.

2. Syntax Analysis
Recover the structure described by using series of tokens from previous scanner.

3. Semantic Analysis
Ensures program has a well-defined meaning.

4. IR Generation

5. IR Optimization

6. Code Generation

7. Optimization

I was thinking to draw a diagram which can clearly show how a compiler works. However, I found the diagram in the dragon book is very good, no more diagram work is necessary anymore.
I still want to make a small compiler which compiles a simple one function from start to end. Will do some research and possibly figure out a good solution for clear demonstration.
References:
1. Standford Compiler Lecture
2. Dragon Book
本文详细介绍了编译器的各个阶段,包括词法分析、语法分析、语义分析、中间代码生成、优化和代码生成,通过示例清晰展示了编译器如何将高级语言源代码转换为低级语言。

1810

被折叠的 条评论
为什么被折叠?



