文档详情

编译原理蒋宗礼课件第1章.ppt

发布:2025-04-04约1.06千字共55页下载文档
文本预览下载声明

编译原理

CompilerPrinciplesandTechniques;主要内容;教材及主要参考书目;第1章?引论;1.1程序设计语言;程序设计语言的分类;程序设计语言的分类;程序设计语言的分类;1.2程序设计语言的翻译;1.2程序设计语言的翻译;1.2程序设计语言的翻译;1.2程序设计语言的翻译;1.2程序设计语言的翻译;1.2程序设计语言的翻译—汇总;*;编译原理引论;1.3编译程序总体结构;*;1、词法分析;1、词法分析;2、语法分析;2、语法分析;3、语义分析;4、中间代码生成;4、中间代码生成;代码优化(optimization)是指对中间代码进行优化处理,使程序运行能够尽量节省存储空间,更有效地利用机器资源,使得程序的运行速度更快,效率更高。当然这种优化变换必须是等价的。

与机器无关的优化

与机器有关的优化;与机器无关的优化;与机器有关的优化;例:sum=(10+20)*(num+square)得到的四元式

T1=10+20

T2=num+square

T3=T1*T2

sum=T3

优化后

T1=num+square

Sum=30*T1;6、目标代码生成;例:sum=(10+20)*(num+square)得到的优化后四元式

T1=num+square

Sum=30*T1

生成如下指令序列:

MOVnum,R1

MOVsquare,R2

ADDR2,R1

MUL30,R1

MOVR1,sum;7、出错处理;8、符号表管理;模块分类;语句sum=(10+20)*(num+square);的翻译过程;1.4编译程序的组织;1.4编译程序的组织;1.4编译程序的组织;*;*;.NET(多个前端+一个后端);1.5编译程序的生成;1.T形图;问题一:如何直接在一个机器上实现C语言编译器?

解决:

用汇编语言实现一个C子集的编译程序(P0—人)

用汇编程序处理该程序,得到(P2:可直接运行)

用C子集编制C语言的编译程序(P3—人)

用P2编译P3,得到P4;4.用P2编译P3,得到P4;3.移植;C语言;1.(人)用C语言编制B机的C编译程序P0(C→B)

(A机的C编译P1)编译P0,得到在A机上可运行的P2(C→B);3.(A机的P2)编译P0,得到在B机上可运行的P3(C→B);4.本机编译器的利用;5.编译程序的自动生成;2)语法分析器的自动生成程序;例1-1;例1-1〔续〕;1.6本章小结

显示全部
相似文档