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

Category >> CS Courses  
If you want someone to read your code, please put the code inside <pre><code> and </code></pre> tags. For example:
<pre><code> 
String foo = "bar";
</code></pre>

  1. kyle on 2013-11-15

    very good

  2. chenzhekl on 2013-11-16

    nice work! It’s really easy to understand.

  3. chengpei on 2014-3-30

    really cool thanks for share

  4. Bilal Yaqoob on 2015-2-17

    Thanks…..very simple ..

  5. Jeff Chang on 2015-11-10

    Found 2 typos:
    at #6. Code Generation, slt $6, $1, $5 should be slt $6, $4, $5
    at #7. Optimization, blt $1, $5, loop should be blt $4, $5, loop

  6. Honig on 2016-9-4

    Thank you!

Leave a comment

*