【编译原理】How Compiler Works?
来源:互联网 发布:淘宝二手钢琴英昌u3 编辑:程序博客网 时间:2024/06/08 18:03
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
- 【编译原理】How Compiler Works?
- How Compiler Works?
- How compiler works
- How the web-tier compiler works
- JTAG工作原理详解(How JTAG works)
- How kNN algorithm works(kNN算法原理讲解)
- mac编译apache时出现 checking whether the C compiler works... no 的解决办法
- How Internet EDI Works
- How E-mail Works
- How E-mail Works
- How Google Works
- How DES works
- How Google Works
- How Google Map Works
- How NAT Works
- How 4GT Works
- How PAE X86 Works
- How Digital Photography Works
- Java synchronized详解
- GitHub 环境搭建(二)
- String TO XML
- Android中Context
- 网页设计中的分割布局
- 【编译原理】How Compiler Works?
- 配置spring-security时报Configuration problem: Unable to locate Spring NamespaceHandler for XML schema
- High Dynamic Range Imaging
- [LeetCode] Add Binary
- XSLT转换xml文件的案例
- Android加载APK中的资源文件
- 让source insight支持AT&T汇编语法高亮
- string头文件与cstring头文件
- LINUX下安装ORACLE时SWAP不足的两种解决方法