编译技术图示(第一章 编译概述)

编译技术图示(第一章 编译概述)

源程序——>机器代码

分析(前端):分成小部分,找出小部分属性,包括:词法分析、语法分析、语义分析、中间代码生成

合成(后端),包括:中间代码优化、目标代码生成、目标代码优化

1、词法分析:识别、删除单词符号、词法检查


输入:源代码,输出:二元式<单词类别,单词属性>

2、语法分析


输出:抽象语法树(AST),从下向上看

3、语义分析


 

有限,大部分都是类型(运算)检查

4、中间代码生成


eg:x=a+b —> t1=a+b x=t1

为什么分为两个指令?因为是两个操作:加法和赋值

5、符号表


1)包括:名字(key)域和属性(value)域

2)实现:线性表、Hash表

源程序——>机器代码

分析(前端):分成小部分,找出小部分属性,包括:词法分析、语法分析、语义分析、中间代码生成

合成(后端),包括:中间代码优化、目标代码生成、目标代码优化

1、词法分析:识别、删除单词符号、词法检查


输入:源代码,输出:二元式<单词类别,单词属性>

2、语法分析


输出:抽象语法树(AST),从下向上看

3、语义分析


 

有限,大部分都是类型(运算)检查

4、中间代码生成


eg:x=a+b —> t1=a+b x=t1

为什么分为两个指令?因为是两个操作:加法和赋值

5、符号表


1)包括:名字(key)域和属性(value)域

2)实现:线性表、Hash表

猜你喜欢

转载自www.cnblogs.com/ggotransfromation/p/11609548.html