- 1、本文档共66页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
编译原理 复习料
教材资料
授课顺序:1
教学目的:正确理解什么是编译程序;了解编译程序工作的基本过程及其各阶段的基本任务;熟悉编译程序总框;了解编译程序的生成过程和构造工具。
教学重点与难点:
编译程序工作的基本过程及其各阶段的基本任务,编译程序总框。
授课学时:2学时
教学方式:多媒体讲授
教学内容:
第一章 引论
1.1 什么是编译程序
一、基本概念
1、翻译程序:是指这样的一种程序,它能够把一种语言程序(源语言程序)转换成另一种功能等价的语言程序(目标语言程序)。
2、编译程序是一种翻译程序,其源程序是高级语言,目标语言程序是低级语言。通常是一次性翻译方式。如TC等高级语言编译程序。
3、解释程序也是一种翻译程序,它与编译程序的区别:立即执行源程序,通常是逐句翻译执行。如BASIC、SQL、JAVA的BYTECODE解释程序等。
二、高级语言程序的处理过程
高级程序设计语言程序的典型处理过程如下图所示:
1.2编译过程和编译程序结构
一、编译过程的阶段划分
一般编译程序的工作过程按阶段进行,每个阶段将源程序从一种表示形式转换成另一种表示形式。典型的阶段划分方法是将整个编译过程分为如下六个阶段:
1、词法分析:
任务:对构成源程序的字符串进行扫描和分解,识别出单词(如标识符等)符号。
输入:源程序
输出:单词符号序列
例子:有待分析源程序:
main()
{
int x=10,y;
}
词法分析后的输出:
1)保留字: main
2)界符:左圆括号 (
3)界符:右圆括号)
4)界符:左大括号{
5)保留字:int
6)标识符:x
7)运算符:=
8)常数:10
9)标识符:y
10)界符:;
11)界符:右大括号 }
2、语法分析
任务:根据语言的语法规则对单词符号串(符号序列)进行语法分析,识别出各类语法短语(可表示成语法树的语法单位),判断输入串在语法上是否正确。
输入:单词序列
输出:语法分析后的单词序列
3、语义分析
任务:按语义规则对语法分析器归约出的语法单位进行语义分析,审查有无语义错误,为代码生成阶段收集类型信息,并进行类型审查和违背语言规范的报错处理。
输入:语法分析后的单词序列
输出:语义分析后带语义信息的单词序列
4、中间代码生成(并非所有的编译程序都包含此阶段)
任务:将语义分析得到的源程序变成一种结构简单、含义明确、易生成、易翻译成目标代码的内在代码形式。常用的中间代码形式是四元式(算符,运算对象1,运算对象2,结果)。
输入:语义分析后的单词序列
输出:中间代码
5、代码优化(可放到目标代码生成阶段后)
任务:对中间代码或目标代码进行变换改造等优化处理,使生成的代码更高效。
输入:中间代码或目标代码
输出:优化后的中间代码或目标代码
6、目标代码生成
任务:将中间代码生成特定机器上的绝对或可重定位的指令代码或汇编指令代码。
输入:语义分析后的单词序列或优化后的中间代码
输出:目标代码
二、编译程序结构
上述六个阶段的任务分别由六个模块来完成。一个完整的编译程序还应包括表格管理和出错处理程序。典型编译程序结构框图如下:
三、编译阶段的组合
1、前后端组合法
编译前端:与源语言有关与目标机无关的部分(第1-4阶段)。
编译后端:与目标机有关的部分(第6阶段)
注:第5阶段置前或后端都可以。组合方式:
1)同一源语言的编译前端+不同后端=不同机器上同一源语言的编译程序;
2)不同源语言的编译前端生成同一种中间语言+使用共同后端=同一机器上不同语言的编译程序。
2、遍组合法
遍/趟:对源程序或源程序的中间结果从头到尾扫描一次称为一遍。每一遍扫视完成一个或几个阶段的工作。一个编译程序可由一遍或多遍完成.实际编译程序分遍的主要参考因素是源语言与目标机器的特征。
1.3编译技术和软件工具
一、编译技术的发展
1950S早期:算术工式译成机器代码。
1950S中期:FORTRAN编译系统。
1950S末期:自动生成工具出现,如:LEX、YACC。
1960S:自展技术。
1971年:用自展技术生成PASCAL编译程序。
现代:并行编译技术。
二、编译技术与软件工具
1、先进的软件开发技术和软件工具能提高编程效率、缩短调试时间。
2、编译程序本身是一种软件工具。
3、大部分软件工具的开发常用到编译技术和方法。
4、进行源程序处理的软件工具实质上都在不同程度上用到了编译程序各个部分的
您可能关注的文档
- 综合布线问题答.doc
- 综合性学习 写 口语交际学教卷.doc
- 综合性学习的命特点及解题技巧.ppt
- 综合探究 聚焦化竞争力(杨).ppt
- 综合探究一 保我们身边的古老文明.ppt
- 综合探究三 何认识区域——以南非为例(第1课时).ppt
- 综合楼钢筋施工案.doc
- 综合法语常用词汇总.doc
- 综合考—地理考复习一.ppt
- 综合训练题及解.ppt
- 部编版八年级上册历史复习第一单元中国开始沦为半殖民地半封建社会训练题.docx
- 2024_2025学年高中历史第三单元资产阶级政治家第10课革命的先行者孙中山2教学教案岳麓版选修4.doc
- 2025届高考历史统考一轮复习课后限时集训4专制集权的不断加强含解析岳麓版.doc
- 2025届高考数学试卷专项练习12三角函数与解三角形含解析.doc
- 2025届高考生物一轮复习专题重组卷第一部分单元检测卷十生物技术实践含解析.doc
- 2025届高考政治一轮复习素养测评二十六文化创新含解析.doc
- 2024_2025学年新教材高中政治第二单元人民当家作主6.2民族区域自治制度教案部编版必修3.docx
- 2024_2025学年新教材高中地理第四章区际联系与区域协调发展4国际合作教案新人教版选择性必修2.doc
- 2025届高考数学第二次模拟试卷三理含解析.doc
- 2025版高考英语一轮复习必修3Module6OldandNew学案含解析外研版1.doc
文档评论(0)