【编译原理】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:

【编译原理】How Compiler Works?_第1张图片

The following shows the output of each phase.

1. Lexical Analysis
Convert a program into sequence of of tokens.

【编译原理】How Compiler Works?_第2张图片

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

【编译原理】How Compiler Works?_第3张图片

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

【编译原理】How Compiler Works?_第4张图片

4. IR Generation

【编译原理】How Compiler Works?_第5张图片

5. IR Optimization

6. Code Generation

【编译原理】How Compiler Works?_第6张图片

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.

【编译原理】How Compiler Works?_第7张图片

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

你可能感兴趣的:(【编译原理】How Compiler Works?)