第1章 编译程序概论优秀PPT.ppt

上传人:石*** 文档编号:65361414 上传时间:2022-12-05 格式:PPT 页数:27 大小:1.44MB
返回 下载 相关 举报
第1章 编译程序概论优秀PPT.ppt_第1页
第1页 / 共27页
第1章 编译程序概论优秀PPT.ppt_第2页
第2页 / 共27页
点击查看更多>>
资源描述

《第1章 编译程序概论优秀PPT.ppt》由会员分享,可在线阅读,更多相关《第1章 编译程序概论优秀PPT.ppt(27页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、第第1章章 编译程序概论编译程序概论现在学习的是第1页,共27页本课程的地位本课程的地位n n计算机科学与技术最重要的专业课之一,掌握编译计算机科学与技术最重要的专业课之一,掌握编译方法和技术是每一个优秀计算机软件专业人员的必方法和技术是每一个优秀计算机软件专业人员的必备素质。备素质。n n很很很很多多多多被被被被称称称称为为为为程程程程序序序序设设设设计计计计大大大大师师师师的的的的人人人人都都都都是是是是编编编编译译译译领领领领域域域域的的的的高高高高手手手手.写写写写出出出出第第第第一一一一个个个个微微微微型型型型机机机机上上上上运运运运行行行行的的的的BasicBasicBasicBa

2、sic语语语语言言言言的的的的比比比比尔尔尔尔盖盖盖盖茨茨茨茨,设设设设计计计计出出出出DelphiDelphiDelphiDelphi的的的的BorlandBorlandBorlandBorland的的的的“世世世世界界界界上上上上最最最最厉厉厉厉害害害害的的的的程程程程序序序序员员员员”,SunSunSunSun的的的的JAVAJAVAJAVAJAVA之之之之父父父父,贝贝贝贝尔尔尔尔实实实实验验验验室室室室的的的的C+C+C+C+之父等等。之父等等。之父等等。之父等等。n n学习编译程序的构造原理和实现技术,不仅可以掌握编译程序本身的学习编译程序的构造原理和实现技术,不仅可以掌握编译程序

3、本身的学习编译程序的构造原理和实现技术,不仅可以掌握编译程序本身的学习编译程序的构造原理和实现技术,不仅可以掌握编译程序本身的实现技术,同时也能够提高对程序设计语言的理解,提高语言的设计实现技术,同时也能够提高对程序设计语言的理解,提高语言的设计实现技术,同时也能够提高对程序设计语言的理解,提高语言的设计实现技术,同时也能够提高对程序设计语言的理解,提高语言的设计能力,提高开发大型软件的能力。能力,提高开发大型软件的能力。能力,提高开发大型软件的能力。能力,提高开发大型软件的能力。现在学习的是第2页,共27页学习任务学习任务n n掌握程序设计语言编译程序构造的一般原理、基本设计掌握程序设计语言

4、编译程序构造的一般原理、基本设计掌握程序设计语言编译程序构造的一般原理、基本设计掌握程序设计语言编译程序构造的一般原理、基本设计方法、主要实现技术和一些自动构造工具。了解将高级方法、主要实现技术和一些自动构造工具。了解将高级方法、主要实现技术和一些自动构造工具。了解将高级方法、主要实现技术和一些自动构造工具。了解将高级程序设计语言源程序翻译成计算机能处理的目标代码的程序设计语言源程序翻译成计算机能处理的目标代码的程序设计语言源程序翻译成计算机能处理的目标代码的程序设计语言源程序翻译成计算机能处理的目标代码的整个过程整个过程整个过程整个过程。n n相关知识:程序设计语言、计算机体系组成原理、相关

5、知识:程序设计语言、计算机体系组成原理、数据结构、操作系统等。数据结构、操作系统等。现在学习的是第3页,共27页教材教材n n教材:教材:教材:教材:编译原理编译原理,张素琴,张素琴,张素琴,张素琴 等编著,清华大学出版社等编著,清华大学出版社等编著,清华大学出版社等编著,清华大学出版社n n参考书目:参考书目:参考书目:参考书目:编译程序设计原理编译程序设计原理编译程序设计原理编译程序设计原理,杜淑敏,杜淑敏,杜淑敏,杜淑敏 等编著,北京大学出版社等编著,北京大学出版社等编著,北京大学出版社等编著,北京大学出版社编译原理教程编译原理教程,胡元义,胡元义,胡元义,胡元义 等编著,西安电子科技大

6、学等编著,西安电子科技大学等编著,西安电子科技大学等编著,西安电子科技大学出版社出版社出版社出版社现在学习的是第4页,共27页成绩考核方法成绩考核方法 平时成绩占平时成绩占平时成绩占平时成绩占50%50%50%50%期末考试成绩占期末考试成绩占期末考试成绩占期末考试成绩占50%50%50%50%。平时成绩为:平时成绩为:平时成绩为:平时成绩为:课堂考勤课堂考勤5%5%平时作业平时作业平时作业平时作业15%15%15%15%期中考试期中考试30%30%现在学习的是第5页,共27页第1章 编译程序概论n n教学要求:教学要求:本章讲解编译程序、本章讲解编译程序、解释程序的基本解释程序的基本概念,概

7、述编译过程,介绍编译程序的逻辑结构和概念,概述编译过程,介绍编译程序的逻辑结构和编译程序的组织形式。要求理解编译程序、解释程编译程序的组织形式。要求理解编译程序、解释程序和遍的基本概念;掌握编译过程各阶段的任务和序和遍的基本概念;掌握编译过程各阶段的任务和编译程序逻辑结构及其各部分的基本功能。编译程序逻辑结构及其各部分的基本功能。n n教学重点:教学重点:编译程序工作的基本过程及其各阶段的基编译程序工作的基本过程及其各阶段的基编译程序工作的基本过程及其各阶段的基编译程序工作的基本过程及其各阶段的基本任务,编译程序总体框架。本任务,编译程序总体框架。本任务,编译程序总体框架。本任务,编译程序总体

8、框架。现在学习的是第6页,共27页n n基本概念基本概念基本概念基本概念机器语言:能够被计算机的硬件系统直接执行的指令机器语言:能够被计算机的硬件系统直接执行的指令机器语言:能够被计算机的硬件系统直接执行的指令机器语言:能够被计算机的硬件系统直接执行的指令程序。程序。程序。程序。汇编语言:将硬件指令用一些助记符表示。如汇编语言:将硬件指令用一些助记符表示。如汇编语言:将硬件指令用一些助记符表示。如汇编语言:将硬件指令用一些助记符表示。如ADDADDADDADD表表示加法操作,示加法操作,SUBSUBSUBSUB表示减法操作等等表示减法操作等等表示减法操作等等表示减法操作等等 高级语言:使用便于

9、理解的自然语言。高级语言:使用便于理解的自然语言。高级语言:使用便于理解的自然语言。高级语言:使用便于理解的自然语言。现在学习的是第7页,共27页n n编译程序(器):接受某种语言的源语言程序后,将编译程序(器):接受某种语言的源语言程序后,将编译程序(器):接受某种语言的源语言程序后,将编译程序(器):接受某种语言的源语言程序后,将它改造成另一种逻辑上等价的目标语言程序。它改造成另一种逻辑上等价的目标语言程序。它改造成另一种逻辑上等价的目标语言程序。它改造成另一种逻辑上等价的目标语言程序。源语言:像Pascal 或c那样的高级语言目标语言:像汇编语言 或机器语言那样的低级语言现在学习的是第8

10、页,共27页需预处理的源程序需预处理的源程序预处理程序预处理程序源程序源程序编译程序编译程序汇编程序汇编程序装配装配/连接编辑程序连接编辑程序目标汇编程序目标汇编程序可再装配的机器代码可再装配的机器代码绝对机器代码绝对机器代码可再装配目标文件可再装配目标文件高级语言程序的处高级语言程序的处高级语言程序的处高级语言程序的处理过程理过程理过程理过程现在学习的是第9页,共27页表表 格格 管管 理理词法分析词法分析语法分析语法分析语义分析语义分析中间代码生成中间代码生成代码优化代码优化目标代码生成目标代码生成出出 错错 处处 理理源程序源程序目标程序目标程序编译的各个阶段编译的各个阶段编译的各个阶段

11、编译的各个阶段现在学习的是第10页,共27页词法分析词法分析 词法分析的功能是从左到右读入源程序的每个字符,对词法分析的功能是从左到右读入源程序的每个字符,对词法分析的功能是从左到右读入源程序的每个字符,对词法分析的功能是从左到右读入源程序的每个字符,对构成源程序的字符流进行扫描和分解,从而识别出一个构成源程序的字符流进行扫描和分解,从而识别出一个构成源程序的字符流进行扫描和分解,从而识别出一个构成源程序的字符流进行扫描和分解,从而识别出一个个单词(也叫单词符号或符号)。个单词(也叫单词符号或符号)。个单词(也叫单词符号或符号)。个单词(也叫单词符号或符号)。依据:语言的构词规则。依据:语言的

12、构词规则。依据:语言的构词规则。依据:语言的构词规则。单词:逻辑上紧密相连的一组字符,这些字符具有集体含单词:逻辑上紧密相连的一组字符,这些字符具有集体含单词:逻辑上紧密相连的一组字符,这些字符具有集体含单词:逻辑上紧密相连的一组字符,这些字符具有集体含义。义。义。义。如:标识符、保留字(关键字或基本字)、算符、界符等。如:标识符、保留字(关键字或基本字)、算符、界符等。如:标识符、保留字(关键字或基本字)、算符、界符等。如:标识符、保留字(关键字或基本字)、算符、界符等。(第四章)现在学习的是第11页,共27页例例例例.某源程序片断如下:某源程序片断如下:某源程序片断如下:某源程序片断如下:

13、beginbegin var sum,first,count:real;var sum,first,count:real;sum:=first+count*10 sum:=first+count*10end.end.1.1.保留字保留字保留字保留字beginbegin2.2.保留字保留字保留字保留字varvar3.3.标识符标识符标识符标识符sumsum4.4.逗号逗号逗号逗号,5.5.标识符标识符标识符标识符firstfirst6.6.逗号逗号逗号逗号,7.7.标识符标识符标识符标识符countcount8.8.冒号冒号冒号冒号:9.9.保留字保留字保留字保留字realreal10.10.1

14、0.10.分号分号分号分号;11.11.标识符标识符标识符标识符sumsum12.12.赋值号赋值号赋值号赋值号:=:=13.13.标识符标识符标识符标识符firstfirst14.14.加号加号加号加号+15.15.标识符标识符标识符标识符countcount16.16.乘号乘号乘号乘号*17.17.整数整数整数整数101018.18.保留字保留字保留字保留字endend19.19.界符界符界符界符.现在学习的是第12页,共27页语法分析语法分析语法分析的功能是将单词序列分解成各类语法短语语法分析的功能是将单词序列分解成各类语法短语(也叫语法单位,句子),确定整个输入串是否构(也叫语法单位,

15、句子),确定整个输入串是否构成一个语法上正确的程序。成一个语法上正确的程序。依据:语言的语法规则依据:语言的语法规则依据:语言的语法规则依据:语言的语法规则,即描述程序结构的规则。即描述程序结构的规则。通过语法分析确定整个输入串是否构成一个语法上通过语法分析确定整个输入串是否构成一个语法上正确的程序。正确的程序。(第5,6,7章)现在学习的是第13页,共27页语句的语句的语句的语句的递归定义递归定义递归定义递归定义:1.1.1.1.标识符标识符标识符标识符:=:=:=:=表达式表达式表达式表达式 是语句。是语句。是语句。是语句。2.2.2.2.while(while(while(while(表

16、达式表达式表达式表达式)do do do do 语句语句语句语句 if(if(if(if(表达式表达式表达式表达式)then then then then 语句语句语句语句 else else else else 语句语句语句语句都是语句。都是语句。都是语句。都是语句。表达式的递归定义:表达式的递归定义:表达式的递归定义:表达式的递归定义:1.1.1.1.任何标识符是表达式。任何标识符是表达式。任何标识符是表达式。任何标识符是表达式。2.2.2.2.任何常数是表达式任何常数是表达式任何常数是表达式任何常数是表达式.3.3.3.3.若表达式若表达式若表达式若表达式1 1 1 1和表达式和表达式和

17、表达式和表达式2 2 2 2是表达式是表达式是表达式是表达式,那么表达式那么表达式那么表达式那么表达式1+1+1+1+表达式表达式表达式表达式2,2,2,2,表达表达表达表达式式式式1 1 1 1*表达式表达式表达式表达式2,(2,(2,(2,(表达式表达式表达式表达式)都是表达式都是表达式都是表达式都是表达式.现在学习的是第14页,共27页赋值语句赋值语句标识符标识符标识符标识符整数整数标识符标识符表达式表达式:=:=表达式表达式+表达式表达式表达式表达式表达式表达式*id1:=id2+id3*10 id1:=id2+id3*10 的语法树的语法树的语法树的语法树id1id1sumsumid

18、2id2firstfirstid3id3countcount1010现在学习的是第15页,共27页n n语义分析的功能是审查源程序有无语义错误,为代语义分析的功能是审查源程序有无语义错误,为代语义分析的功能是审查源程序有无语义错误,为代语义分析的功能是审查源程序有无语义错误,为代码生成阶段收集类型信息。码生成阶段收集类型信息。码生成阶段收集类型信息。码生成阶段收集类型信息。n n语义分析主要能识别的语义错误有变量没有声明语义分析主要能识别的语义错误有变量没有声明语义分析主要能识别的语义错误有变量没有声明语义分析主要能识别的语义错误有变量没有声明就使用,变量重复声明,运算对象类型是否匹配就使用,

19、变量重复声明,运算对象类型是否匹配就使用,变量重复声明,运算对象类型是否匹配就使用,变量重复声明,运算对象类型是否匹配等等。等等。等等。等等。语义分析语义分析(第8章)现在学习的是第16页,共27页如:类型检查。如:类型检查。:=:=id1id1+id2id2*id3id31010inttorealinttorealsum:=first+count*10sum:=first+count*10id1id1id2id2id3id3现在学习的是第17页,共27页中间代码生成中间代码生成中间代码:一种结构简单、含义明确的记号系统。中间代码:一种结构简单、含义明确的记号系统。中间代码:一种结构简单、含义

20、明确的记号系统。中间代码:一种结构简单、含义明确的记号系统。原则:原则:原则:原则:容易生成;容易生成;容易生成;容易生成;容易将它翻译成目标代码。容易将它翻译成目标代码。容易将它翻译成目标代码。容易将它翻译成目标代码。如四元式如四元式如四元式如四元式:(运算符,运算对象(运算符,运算对象(运算符,运算对象(运算符,运算对象1 1 1 1,运算对象,运算对象,运算对象,运算对象2 2 2 2,结果),结果),结果),结果)将源程序生成一种内部表示形式,这种内部表示将源程序生成一种内部表示形式,这种内部表示将源程序生成一种内部表示形式,这种内部表示将源程序生成一种内部表示形式,这种内部表示形式叫

21、中间代码。形式叫中间代码。形式叫中间代码。形式叫中间代码。(第8章)现在学习的是第18页,共27页如:源程序如:源程序如:源程序如:源程序 sum:=first+count*10sum:=first+count*10生成的四元式可以是:生成的四元式可以是:生成的四元式可以是:生成的四元式可以是:(inttorealinttoreal,1010,-,t1 )t1 )(*(*,id3id3,t1t1,t2 )t2 )(+(+,id2id2,t2t2,t3 )t3 )(:=(:=,t3t3,-,id1)id1)id1id1id2id2id3id3现在学习的是第19页,共27页代码优化代码优化(int

22、torealinttoreal,1010,-,t1 )t1 )(*(*,id3id3,t1t1,t2 )t2 )(+(+,id2id2,t2t2,t3 )t3 )(:=(:=,t3t3,-,id1)id1)(*(*,id3id3,10.010.0,t2 )t2 )(+(+,id2id2,t2t2,id1)id1)(*(*,id3id3,10.010.0,t1 )t1 )(+(+,id2id2,t1t1,id1)id1)目的目的:使目标代码运行时间较短,占用空间较小。使目标代码运行时间较短,占用空间较小。(第8章)现在学习的是第20页,共27页目标代码生成目标代码生成 任务任务任务任务:把中间代

23、码变换成特定机器上的绝对:把中间代码变换成特定机器上的绝对:把中间代码变换成特定机器上的绝对:把中间代码变换成特定机器上的绝对指令代码或可重定位的指令代码或汇编指令代指令代码或可重定位的指令代码或汇编指令代指令代码或可重定位的指令代码或汇编指令代指令代码或可重定位的指令代码或汇编指令代码。码。码。码。特点特点特点特点:与硬件系统结构和指令含义有关,涉:与硬件系统结构和指令含义有关,涉及到硬件系统功能部件的运用、机器指令的及到硬件系统功能部件的运用、机器指令的选择、各种数据类型变量的存储空间分配以选择、各种数据类型变量的存储空间分配以及寄存器和后缓寄存器的调度等。及寄存器和后缓寄存器的调度等。(

24、第12章)现在学习的是第21页,共27页n n符号表用来记录源程序中出现的标识符,并收集每个标识符号表用来记录源程序中出现的标识符,并收集每个标识符号表用来记录源程序中出现的标识符,并收集每个标识符号表用来记录源程序中出现的标识符,并收集每个标识符的各种属性信息。符的各种属性信息。符的各种属性信息。符的各种属性信息。n n符号表是由若干记录组成的数据结构,每个标识符在表符号表是由若干记录组成的数据结构,每个标识符在表符号表是由若干记录组成的数据结构,每个标识符在表符号表是由若干记录组成的数据结构,每个标识符在表中有一条记录,每条记录有多个域,每个域记载标识符中有一条记录,每条记录有多个域,每个

25、域记载标识符中有一条记录,每条记录有多个域,每个域记载标识符中有一条记录,每条记录有多个域,每个域记载标识符的一个属性。的一个属性。的一个属性。的一个属性。符号表管理(第9章)现在学习的是第22页,共27页表表 格格 管管 理理 程程 序序词法分析程序词法分析程序语法分析程序语法分析程序语义分析程序语义分析程序中间代码生成程序中间代码生成程序代码优化程序代码优化程序目标代码生成程序目标代码生成程序出出 错错 处处 理理 程程 序序源程序源程序目标程序目标程序编译程序的结构编译程序的结构编译程序的结构编译程序的结构现在学习的是第23页,共27页有关名词:有关名词:有关名词:有关名词:前端(前端(

26、前端(前端(front endfront endfront endfront end):主要依赖于源语言而与目标机器无):主要依赖于源语言而与目标机器无):主要依赖于源语言而与目标机器无):主要依赖于源语言而与目标机器无关的编译阶段。如:词法分析、语法分析、语义分析、中关的编译阶段。如:词法分析、语法分析、语义分析、中关的编译阶段。如:词法分析、语法分析、语义分析、中关的编译阶段。如:词法分析、语法分析、语义分析、中间代码生成、部分优化工作、与前端有关的出错处理工作间代码生成、部分优化工作、与前端有关的出错处理工作间代码生成、部分优化工作、与前端有关的出错处理工作间代码生成、部分优化工作、与前

27、端有关的出错处理工作和符号表管理工作。和符号表管理工作。和符号表管理工作。和符号表管理工作。后端(后端(后端(后端(back endback endback endback end):依赖于目标机而一般不依赖于源语):依赖于目标机而一般不依赖于源语):依赖于目标机而一般不依赖于源语):依赖于目标机而一般不依赖于源语言,只与中间代码有关的编译阶段。如:目标代码生成,言,只与中间代码有关的编译阶段。如:目标代码生成,言,只与中间代码有关的编译阶段。如:目标代码生成,言,只与中间代码有关的编译阶段。如:目标代码生成,以及相关出错处理和符号表操作。以及相关出错处理和符号表操作。以及相关出错处理和符号表

28、操作。以及相关出错处理和符号表操作。遍(趟):对源程序或其等价的中间语言程序从头到尾扫遍(趟):对源程序或其等价的中间语言程序从头到尾扫遍(趟):对源程序或其等价的中间语言程序从头到尾扫遍(趟):对源程序或其等价的中间语言程序从头到尾扫视并完成规定任务的过程。每一遍扫视可完成上述一个阶视并完成规定任务的过程。每一遍扫视可完成上述一个阶视并完成规定任务的过程。每一遍扫视可完成上述一个阶视并完成规定任务的过程。每一遍扫视可完成上述一个阶段或多个阶段的工作。段或多个阶段的工作。段或多个阶段的工作。段或多个阶段的工作。现在学习的是第24页,共27页编译的几个阶段如何组合,编译程序分成几遍主要影响因素:

29、(1)源语言和机器的特征.(2)机器的情况.多遍比一遍少占内存,逻辑结构清晰一些,但消耗时间较多.现在学习的是第25页,共27页语言处理程序n n解解解解释释释释程程程程序序序序(器器器器):接接接接受受受受某某某某种种种种语语语语言言言言源源源源程程程程序序序序,然然然然后后后后直直直直接解释执行源程序。接解释执行源程序。接解释执行源程序。接解释执行源程序。n n编编编编译译译译程程程程序序序序(器器器器):接接接接受受受受某某某某种种种种语语语语言言言言的的的的源源源源语语语语 言言言言程程程程序序序序后后后后,将将将将它它它它改改改改造造造造成成成成另另另另一一一一种种种种逻逻逻逻辑辑辑辑上上上上等等等等价价价价的的的的目目目目标标标标语语语语言言言言程程程程序。序。序。序。n n两种方法数据处理时间不同?两种方法数据处理时间不同?两种方法数据处理时间不同?两种方法数据处理时间不同?现在学习的是第26页,共27页n n区别区别:是否生成目标代码是否生成目标代码.存储组织不同存储组织不同 解释程序比较慢解释程序比较慢,空间开销比较大空间开销比较大现在学习的是第27页,共27页

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 生活休闲 > 资格考试

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

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁