《编译原理实践及应用》第1章编译原理概述.ppt
《《编译原理实践及应用》第1章编译原理概述.ppt》由会员分享,可在线阅读,更多相关《《编译原理实践及应用》第1章编译原理概述.ppt(42页珍藏版)》请在三一办公上搜索。
1、编译原理实践及应用,主讲人:董明刚,2023年9月1日星期五,第2页,教材及主要参考资料,教材:编译原理实践及应用,黄贤英,清华大学出版社主要参考资料:编译原理,陈火旺,国防工业出版社编译原理(原书第2版)(龙书),ALFRED V.AHO etc著,赵建华 郑滔等译,机械工业出版社,2008.12程序设计语言编译方法,肖军模,大连理工大学出版社编译原理,张素琴,吕映芝,清华大学出版社更多教材及参考资料参见编译原理精品课程网站。,C语言程序,void main()int x,y,z;x=3;y=2;z=x+y;,序言,在内存中:,?,编译原理概述,第一章,2023年9月1日星期五,第5页,本章
2、要求,主要内容:各种翻译程序的概念,编译过程和阶段划分,编译程序的组成和结构,编译程序的构造方法重点掌握:编译程序工作的基本过程及其各阶段的基本任务,编译程序总框。,2023年9月1日星期五,第6页,1.1 程序设计语言与翻译程序,机器语言(machine language)C7 06 0000 0002汇编语言(assembler language)MOV X,2高级语言(high-level language)X=2,为什么要使用编译程序?,2023年9月1日星期五,第7页,机器语言(machine language)C7 06 0000 0002汇编语言(assembler langua
3、ge)MOV X,2高级语言(high-level language)X=2,为什么要使用编译程序?,2023年9月1日星期五,第8页,计算机中的语言层次和翻译程序,2023年9月1日星期五,第9页,什么叫翻译程序,翻译程序:能够将某种语言写的程序转换成另一种语言的程序,而且后者与前者在逻辑上是等价的。编译程序:将高级程序设计语言程序翻译成逻辑上等价的低级语言(汇编语言,机器语言)程序的翻译程序。解释程序:将高级程序设计语言写的源程序作为输入,边解释边执行源程序本身,而不产生目标程序的翻译程序。,2023年9月1日星期五,第10页,操作系统汇编语言,翻译程序所处的层次,计算机硬件,2023年9
4、月1日星期五,第11页,编译程序,解释程序,2023年9月1日星期五,第12页,对编译程序的一些说明,编译程序实质上是一个翻译程序,要注意等价变换本课程的任务就是讲解在这个转换过程中所涉及到的一些理论和方法,最后,使用这些理论和方法,自己编写一个小的编译器转换是一个总体的功能,要抓住总体结构,逐层细分,写编译器时要体现软件工程中软件设计的原则,自顶向下,逐层分解。编译器要完成的转换任务相当复杂,实现编译器时必须分步骤分阶段实现。分阶段实现的好处是能够简化程序的设计,当然也可以不分阶段实现。,2023年9月1日星期五,第13页,编译程序的分类,诊断编译程序优化编译程序可变目标编译程序交叉编译程序
5、,2023年9月1日星期五,第14页,编译器的伙伴,编辑器(editor)预处理器(Preprocessor)将源程序汇集到一起,宏展开等汇编程序(assembler)连接程序(linker)连接系统函数与系统资源装入程序(loader)重定位(relocation)Debugger,Profiler,Project Manager,2023年9月1日星期五,第15页,编译原理是讨论编译程序设计的基本理论、基本概念、基本方法,什么是编译原理,2023年9月1日星期五,第16页,1.2 编译过程概述,1、逻辑上分五个阶段:词法分析、语法分析、语义分析与中间代码生成、代码优化、目标代码生成 每个阶
6、段把源程序从一种表示变换成另一种表示,2023年9月1日星期五,第17页,按照词法分析、语法分析、语义分析等这种方式来划分阶段的原因是:每个阶段的复杂程度不同,所依据的理论基础不同,实现时采用的方法也不同。主要是方便理解和实现。划分阶段的依据是什么?每个阶段所实现的功能相对独立。,用一个例子说明各阶段的功能,2023年9月1日星期五,第18页,/*一个PASCAL语言的源程序*/program test;/*this is an example,computing an area*/var area,length,width:integer;begin length:=5;width:=5;a
7、rea:=5length*widthlength*widthend.,2023年9月1日星期五,第19页,第一阶段:词法分析,任务:从左到右扫描源程序,识别出每个单词附加任务:a、滤掉空格 b、去掉注释 单词符号是语言的基本组成成分词法分析的工作主要依据语言中单词的构成规则单词的种类:(1)标识符(2)关键字(char、int、if、else、while、for等)(3)运算符(即运算符号+、*、/、&等)(4)界符(常见的有;,:()等)(5)常数,2023年9月1日星期五,第20页,begin area:=5length*width length*widthend;,例:,2023年9月1
8、日星期五,第21页,第二阶段:语法分析,任务:在词法分析的基础上,根据语言的语法规则,将单词符号串分解成各类语法短语(例:程序、语句、表达式)。确定整个输入串是否构成语法上正确的程序。根据规则判定:赋值语句:标识符:表达式 表达式:标识符、常数是表达式 表达式的运算也是表达式例:识别符号串id1:=int1+id2*id3+id2*id3是一个赋值语句(area:=5length*widthlength*width)而int1+id2*id3+id2*id3是一个表达式(5length*widthlength*width),2023年9月1日星期五,第22页,语法分析所依据的是语言的语法规则,
9、id1:=int1+id2*id3+id2*id3,2023年9月1日星期五,第23页,第三阶段:语义分析和中间代码生成,任务:对语法分析所识别出的各类语法短语分析其含义,进行初步的翻译(翻译成中间代码)。静态语义审查变量定义类型匹配类型转换 例:C:=A*B(检查C与、类型)中间代码的翻译 中间代码有多种形式,如:四元式:(运算符,运算对象1,运算对象2,结果),2023年9月1日星期五,第24页,例:对赋值语句:id1:=int1+id2*id3+id2*id3 1.检查area、length、width是否定义、类型 2.生成中间代码,(运算符,运算对象1,运算对象2,结果)(*,id2
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 编译原理实践及应用 编译 原理 实践 应用 概述
链接地址:https://www.31ppt.com/p-5903744.html