1 北航本科编译原理课件 张莉

1 北航本科编译原理课件 张莉

ID:34132561

大小:330.14 KB

页数:24页

时间:2019-03-03

1 北航本科编译原理课件 张莉_第1页
1 北航本科编译原理课件 张莉_第2页
1 北航本科编译原理课件 张莉_第3页
1 北航本科编译原理课件 张莉_第4页
1 北航本科编译原理课件 张莉_第5页
资源描述:

《1 北航本科编译原理课件 张莉》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、第一章概论••编译的起源:程序设计语言的发展编译的起源:程序设计语言的发展••基本概念基本概念••编译过程和编译程序构造编译过程和编译程序构造••编译技术的应用编译技术的应用北京航空航天大学计算机学院11.11.1程序设计语言的发展程序设计语言的发展机器语言面向用户面向问题汇编语言(机器指令)的语言的语言低级语言高级语言北京航空航天大学计算机学院2•低级语言(LowlevelLanguage)–字位码、机器语言、汇编语言–特点:与特定的机器有关,效率高、灵活,但使用复杂、繁琐、编写费时、易出错•高级语言

2、--Fortran、Pascal、C语言等–特点:不依赖具体机器,移植性好、便于描述问题处理过程和算法、易使用、易维护等。用高级语言编制的程序,计算机不能立即执行,必须通过一个“翻译程序”加工,转化为与其等价的机器语言程序,机器才能执行。这种翻译程序,称之为“编译程序”。北京航空航天大学计算机学院31.21.2基本概念基本概念•源程序用汇编语言或高级语言编写的程序称为源程序。•目标程序用目标语言所表示的程序。目标语言:可以是某种机器的机器语言或汇编语言,也可以是介于源语言和机器语言之间的“中间语言”,甚

3、至可以是另一种高级语言。•翻译程序将源程序转换为目标程序的程序称为翻译程序。它是指各种语言的翻译器,包括汇编程序和编译程序,是汇编程序、编译程序以及各种变换程序的总称。北京航空航天大学计算机学院4源程序、翻译程序、目标程序三者关系:源程序翻译程序目标程序SOURCETRANSLATEROBJECTPROGRAMPROGRAM即源程序是翻译程序的输入,目标程序是翻译程序的输出北京航空航天大学计算机学院5•汇编程序若源程序用汇编语言书写,经过翻译程序得到用机器语言表示的程序,这时的翻译程序就称之为汇编程序,

4、这种翻译过程称为“汇编”(Assemble)•编译程序若源程序是用高级语言书写,经加工后得到目标程序,这种翻译过程称“编译”(Compile)汇编程序与编译程序都是翻译程序,主要区别是加工对象的不同。北京航空航天大学计算机学院6源程序的编译和运行源程序的编译和运行•编译或汇编阶段编译程序编译程序源程序目标程序或汇编程序或汇编程序•运行阶段目标程序输入数据+输出数据运行子程序北京航空航天大学计算机学院7•解释程序(Interpreter)对源程序进行解释执行的程序。•工作过程源程序输入数据解释程序解释程序

5、输出数据北京航空航天大学计算机学院8“编译“编译--解释执行”系统解释执行”系统源程序编译程序编译程序源程序的中间形式输入数据解释程序解释程序输出数据北京航空航天大学计算机学院91.3.11.3.1编译过程编译过程编译过程是指将高级语言程序翻译为等价的目标程序的过程。习惯上是将编译过程划分为5个基本阶段:词法分析语法分析语义分析、生成中间代码代码优化生成目标程序北京航空航天大学计算机学院10一、词法分析任务:分析和识别单词。源程序是由字符序列构成的,词法分析扫描源程序(字符串),根据语言的词法规则分析并

6、识别单词,并以某种编码形式输出。•单词:是语言的基本语法单位,一般语言有四大类单词<1>语言定义的关键字或保留字(如BEGIN、END、IF)<2>标识符<3>常数<4>分界符(运算符)(如+、-、*、/、;、(、)……)北京航空航天大学计算机学院11二、语法分析任务:根据语法规则(即语言的文法),分析并识别出各种语法成分,如表达式、各种说明、各种语句、过程、函数等,并进行语法正确性检查。X1:=(2.0+0.8)*C1赋值语句的文法:<赋值语句>→<变量><赋值操作符><表达式><变量>→<简单标识符

7、><赋值操作符>→:=<表达式>→……北京航空航天大学计算机学院12三、语义分析、生成中间代码任务:对识别出的各种语法成分进行语义分析,并产生相应的中间代码。•中间代码:一种介于源语言和目标语言之间的中间语言形式•生成中间代码的目的:<1>便于做优化处理;<2>便于编译程序的移植。•中间代码的形式:编译程序设计者可以自己设计,常用的有四元式、三元式、逆波兰表示等。北京航空航天大学计算机学院13四元式(三地址指令)X1:=(2.0+0.8)*C1运算符左运算对象右运算对象结果(1)+2.00.8T1(2)

8、*T1C1T2(3):=X1T2其中T1和T2为编译程序引入的工作单元四元式的语义为:2.0+0.8→T1T1*C1→T2T2→X1这样所生成的四元式与原来的赋值语句在语言的形式上不同,但语义上等价。北京航空航天大学计算机学院14四、代码优化目的:是为了得到高质量的目标程序。例如:前面的四元式中第一个四元式是计算常量表达式值,该值在编译时就可以算出并存放在工作单元中,不必生成目标指令来计算,这样四元式可优化为:编译时:2.0+0.8→T1(

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。