程序设计语言编译程序构造的基本原理和基本实现技术概要课件

上传人:风*** 文档编号:252385902 上传时间:2024-11-15 格式:PPT 页数:38 大小:269.88KB
返回 下载 相关 举报
程序设计语言编译程序构造的基本原理和基本实现技术概要课件_第1页
第1页 / 共38页
程序设计语言编译程序构造的基本原理和基本实现技术概要课件_第2页
第2页 / 共38页
程序设计语言编译程序构造的基本原理和基本实现技术概要课件_第3页
第3页 / 共38页
点击查看更多>>
资源描述
*,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,编译原理,第一章 引 论,本课程介绍程序设计语言编译程序构造的基本原理和基本实现技术,.,编译原理第一章 引 论本课程介绍程序设计语言编,源语言程序,目标语言程序,翻译,程序,翻译,一,.,什么是编译程序,翻译程序,把某一种语言程序,(,称为,源语言程序,),等价地转换成另一种语言程序,(,称为,目标语言程序,),的程序,源语言程序目标语言程序翻译翻译一.什么是编译程序翻译程序,高级语言程序,机器语言程序,结果,编译,程序,翻译,运行,一,.,什么是编译程序,编译程序,(compiler),把某一种,高级语言程序,等价地转换成另一种,低级语言程序,(,如汇编语言或机器语言程序,),的程序,诊断编译程序优化编译程序,交叉编译程序可变目标编译程序,高级语言程序机器语言程序结果编译翻译运行一.什么是编译程序,一,.,什么是编译程序,解释程序,把源语言写的源程序作为输入,但不产生目标程序,而是边解释边执行源程序本身,源程序,结果,解释,程序,解释执行,一.什么是编译程序解释程序源程序结果解释解释执行,二,.,编译过程,把英文翻译为中文,识别出句子中的一个个单词;,分析句子的语法结构;,根据句子的含义进行初步翻译;,对译文进行修饰;,写出最后的译文。,词法分析,语法分析,中间代码产生,优化,目标代码产生,二.编译过程把英文翻译为中文 词法分析语法分析中间代码产,二,.,编译过程,编译程序的工作一般分为五个阶段,:,词法分析,语法分析,中间代码产生,优化,目标代码产生,二.编译过程编译程序的工作一般分为五个阶段:,1.,词法分析,任务,:,输入源程序,对构成源程序的字符串进行扫描和分解,识别出一个个单词符号。,依循的原则:构词规则,描述工具:有限自动机,FOR I :=1 TO 100 DO,保留字 标识符 等符 整常数 保留字 整常数 保留字,1.词法分析任务:输入源程序,对构成源程序的字符串进行扫,2.,语法分析,任务,:,在词法分析的基础上,根据语言的语法规则把单词符号串分解成各类语法单位。,依循的原则:语法规则,描述工具:上下文无关文法,Z:=X+0.618*Y,算术表达式,赋值语句,2.语法分析任务:在词法分析的基础上,根据语言的语法规则把,3.,中间代码产生,任务,:,对各类不同语法范畴按语言的语义进行初步翻译。,依循的原则:语义规则,中间代码,:,三元式,四元式,树形结构等,Z:=X+0.618*Y,翻译成四元式为,(1)*0.618 Y T1,(2)+X T1 T2,(3):=T2 _ Z,3.中间代码产生任务:对各类不同语法范畴按语言的语义进行初,4.,优化,任务:对于前阶段产生的中间代码进行加工变换,以期在最后阶段产生更高效的目标代码。,依循的原则:程序的等价变换规则,FOR K:=1 TO 100 DO,BEGIN,X:=I+1;,M:=I+10*K;,N:=J+10*K;,END,4.优化任务:对于前阶段产生的中间代码进行加工变换,以期在,中间代码(一),序号,OPROPN1 OPN2 RESULT,注释,(1):=1 K K:=1,(2)j100 K (10)if(100K),goto(10),(3)+I 1 X X:=I+1,(4)*10 K T1 T1:=10*K,(5)+I T1 M M:=I+T1,(6)*10 K T2 T2:=10*K,(7)+J T2 N N:=J+T2,(8)+K 1 K K:=K+1,(9)j (2)goto(2),(10),400,次加法,200,次乘法,中间代码(一)序号OPROPN1 OPN2 RESU,转换后的等价代码(二),序号,OPROPN1OPN2 RESULT,注释,(1)+I 1 X X:=I+1,(2):=I M M:=I,(3):=J N N:=J,(4):=1 K K:=1,(5)j100 K(10)if(100K),goto(10),(6)+M 10 M M:=M+10,(7)+N 10 N N:=N+10,(8)+K 1 K K:=K+1,(9)j(5)goto(5),(10),301,次加法,转换后的等价代码(二)序号OPROPN1OPN2 R,5.,目标代码产生,任务,:,把中间代码变换成特定机器上的目标代码。,依赖于硬件系统结构和机器指令的含义,目标代码三种形式,:,绝对指令代码,:,可直接运行,可重新定位指令代码,:,需要连接装配,汇编指令代码,:,需要进行汇编,5.目标代码产生任务:把中间代码变换成特定机器上的目标代,三,.,编译程序结构,编译程序总框,三.编译程序结构编译程序总框,中间代码,单词符号,语法单位,中间代码,目标代码,词法分析器,语法分析器,语义分析与中间代码生成器,优化段,源程序,表,格,管,理,出,错,处,理,目标代码生成器,中间代码单词符号语法单位中间代码目标代码词法分析器语法分析器,2.,表格和表格管理,常见的表格,:,符号名表,常数表,标号表,入口名表,过程引用表。,格式,:,名字,信息,2.表格和表格管理名字信息,例,:PASCAL,程序段:,PROCEDURE INCWAP(M,,,N:INTEGER);,LABEL START;,VAR,K:INTEGER;,BEGIN,START:,K:=M+1;,M:=N+4;,N:=K;,END.,例:PASCAL程序段:PROCEDURE INCWAP(,PROCEDURE INCWAP(M,,,N:INTEGER);,LABEL START;,VAR,K:INTEGER;,BEGIN,START:,K:=M+1;,M:=N+4;,N:=K;,END.,PROCEDURE INCWAP(M,N:INTEGER);,PROCEDURE INCWAP(M,,,N:INTEGER);,LABEL START;,VAR,K:INTEGER;,BEGIN,START:,K:=M+1;,M:=N+4;,N:=K;,END.,PROCEDURE INCWAP(M,N:INTEGER);,PROCEDURE INCWAP(M,,,N:INTEGER);,LABEL START;,VAR,K:INTEGER;,BEGIN,START:,K:=M+1;,M:=N+4;,N:=K;,END.,PROCEDURE INCWAP(M,N:INTEGER);,PROCEDURE INCWAP(M,,,N:INTEGER);,LABEL START;,VAR,K:INTEGER;,BEGIN,START:,K:=M+1;,M:=N+4;,N:=K;,END.,PROCEDURE INCWAP(M,N:INTEGER);,程序设计语言编译程序构造的基本原理和基本实现技术概要课件,PROCEDURE INCWAP(M,,,N:INTEGER);,LABEL START;,VAR,K:INTEGER;,BEGIN,START:,K:=M+1;,M:=N+4;,N:=K;,END.,PROCEDURE INCWAP(M,N:INTEGER);,3.,出错处理,出错处理程序:,发现,源程序中的,错误,把有关错误信息报告给用户,语法错误,语义错误,3.出错处理出错处理程序:发现源程序中的错误,把有关错误信,4.,遍,(pass),所谓,“,遍,”,,就是对源程序或源程序的中间表示从头到尾扫描一次,从外存输入,处理后结果输出到外存。,阶段与遍是不同的概念。一遍可以由若干段组成,一个阶段也可以分若干遍来完成。,4.遍(pass)所谓“遍”,就是对源程序或源程序的中间,5.,编译前端与后端,编译前端,:与源语言有关,如词法分析,语法分析,语义分析与中间代码产生,与机器无关的优化,编译后端,:与目标机有关,与目标机有关的优化,目标代码产生,源语言,中间语言,目标语言,前端,后端,5.编译前端与后端编译前端:与源语言有关,如词法分析,语法,四,.,编译程序与程序设计环境,程序设计环境,编辑程序,编译程序,连接程序,调试工具,集成化的程序设计环境,四.编译程序与程序设计环境 程序设计环境,五,.,编译程序生成,以汇编语言和机器语言为工具,优点,:,可以针对具体的机器,充分发挥计算机的系统功能。生成的程序效率高。,缺点,:,程序难读、难写、易出错、难维护、生产的效率低。,五.编译程序生成以汇编语言和机器语言为工具,五,.,编译程序生成,高级语言书写,优点,:,程序易读、易理解、容易维护、生产的效率高。,缺点,:,难以充分发挥计算机的系统功能,生成的程序效率低。,五.编译程序生成高级语言书写优点:程序易读、易理解、容易,五,.,编译程序生成,高级语言书写,利用已有的某种语言的编译程序实现另一语言的编译程序。,L1,语言,A,代码,P1:,A,代码,L2,语言,A,代码,P2:,L1,语言,L2,语言,A,代码,P2:,A,代码,同一台机器,不同的语言,五.编译程序生成高级语言书写L1语言A代码P1:L2语言A代,五,.,编译程序生成,移植方法,把一种机器上的编译程序移植到另一种机器上。,L,语言,A,代码,P1:,A,代码,L,语言,B,代码,P2:,L,语言,L,语言,B,代码,P2:,A,代码,L,语言,B,代码,P2:,L,语言,L,语言,B,代码,P2:,B,代码,同一种语言不同的机器,五.编译程序生成 移植方法L语言A代码P1:L语言B代码P2,L,1,+L,2,+.+L,n,L,1,+L,2,五,.,编译程序生成,自展技术,L,1,L1+L2+.+LnL1+L2五.编译程序生成自展技术,五,.,编译程序生成,编译程序自动产生,编译程序,-,编译程序,编译程序书写系统,LEX,词法分析程序产生器,YACC,语法分析程序产生器,编译程序,自动产生器,L,语言的语法描述,语义描述,目标语言,或机器描述,L,语言的,编译程序,五.编译程序生成编译程序自动产生LEX 词法分析程序产生器编,六,.,关于学习编译原理,构造编译程序的前提,:,掌握源语言,掌握目标语言,掌握编译方法,六.关于学习编译原理 构造编译程序的前提:,六,.,关于学习编译原理,意义,:,学习编译程序构造原理,技术,更好地理解高级语言,编译的原理和方法有助于构造一些实用的工具,六.关于学习编译原理意义:,六,.,关于学习编译原理,课程特点,:,理解性,技术性,六.关于学习编译原理 课程特点:,第一章 小结,内容,1,什么是编译程序,2,编译过程和编译程序的结构,3,为,什么要学习编译程序,本章没有难以理解的内容,重点对编译程序的功能和结构做一综述,要说难点的话可能是,:,了解编译程序各个成分在编译阶段的逻辑关系以及他们怎样作为一个整体完成编译任务的。,第一章 小结内容,参考书,Compilers Principles,,,Techniques and Tools,,,A.V.AHO,编译原理及编译程序构造 北航出版社,高仲信,金茂忠,编译原理典型题解析与实战模拟 刘春林、王挺等,编译原理例解析疑 赵雄芳等,参考书Compilers Principles,Techn,
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 办公文档 > PPT模板库


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!