北航编译原理课件 12.编译程序生成方法和工具.ppt.ppt
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《北航编译原理课件 12.编译程序生成方法和工具.ppt.ppt》由用户(三亚风情)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 北航编译原理课件 12.编译程序生成方法和工具.ppt 北航 编译 原理 课件 12. 编译程序 生成 方法 工具 ppt
- 资源描述:
-
1、北京航空航天大学计算机学院北京航空航天大学计算机学院1第十二章第十二章 编译程序生成方法和工具编译程序生成方法和工具 编译程序的书写语言编译程序的书写语言 自编译性自编译性 自展自展 编译程序的移植编译程序的移植 编译程序的自动生成编译程序的自动生成北京航空航天大学计算机学院北京航空航天大学计算机学院212.1 编译程序的书写语言编译程序的书写语言机器语言或汇编语言机器语言或汇编语言 主要优点:编出来的程序效率高。主要优点:编出来的程序效率高。 主要缺点:编程效率低,可读性差,不便于修改和移植。主要缺点:编程效率低,可读性差,不便于修改和移植。高级程序设计语言已基本取代汇编语言高级程序设计语言
2、已基本取代汇编语言 优点:编程效率高,可读性好,利于移植。优点:编程效率高,可读性好,利于移植。 缺点:编译程运行效率较低。缺点:编译程运行效率较低。北京航空航天大学计算机学院北京航空航天大学计算机学院312.2 自编译性自编译性自编译性:自编译性:如果一个高级语言能用来书写自己的编译程序,则如果一个高级语言能用来书写自己的编译程序,则该语言具有自编译性,并称该语言为自编译语言。该语言具有自编译性,并称该语言为自编译语言。两点说明:两点说明:1. 通常用自编译语言除可编写本语言的编译程序以外,也可用通常用自编译语言除可编写本语言的编译程序以外,也可用来编写别的语言的编译程序。来编写别的语言的编
3、译程序。 如果某台机器上已配备有某种自编译语言,则可利用这种如果某台机器上已配备有某种自编译语言,则可利用这种语言为本台机器配置其它的高级语言。语言为本台机器配置其它的高级语言。北京航空航天大学计算机学院北京航空航天大学计算机学院4例:例:A机上有自编译语言机上有自编译语言L1的编译程序的编译程序 L1 . AO L1语言语言L1的编译程序的编译程序 AO以以A机的机器指令形式给出机的机器指令形式给出 利用语言利用语言L1可为可为A机生成语言机生成语言L2的编译程序的编译程序 L2. L1 L1.AO L2.AOL1源程序源程序 A机机L2可执行的编译程序可执行的编译程序L2源程序源程序 L2
4、.AOL2目标程序目标程序A机机可在可在A机上运行机上运行北京航空航天大学计算机学院北京航空航天大学计算机学院5(b)解释程序(c)计算机(d)程序(a)编译程序源语言目标语言书写语言北京航空航天大学计算机学院北京航空航天大学计算机学院6L2L1 AoL1AoAoAoAoAoL2AoAoL2AoL2Aoff用用L1写写的的L2语言语言的编译器的编译器L2.L1用用Ao描述的描述的L1语语言的编译器言的编译器L1.Ao用用Ao描述的描述的L2语语言的编译器言的编译器L2.Ao运行运行Ao的的计算机计算机北京航空航天大学计算机学院北京航空航天大学计算机学院72.自编译性不是绝对的,只是强弱不同自编
5、译性不是绝对的,只是强弱不同 数据类型丰富的语言数据类型丰富的语言 控制结构丰富的语言控制结构丰富的语言自编译性强自编译性强数据类型:数据类型:除一般的外还有字符串类型,数组,结构,枚举,指除一般的外还有字符串类型,数组,结构,枚举,指 针等类型。针等类型。控制结构:控制结构:应适于进行多分支的程序设计,如有应适于进行多分支的程序设计,如有CASE语句等语句等 FORTRAN , ALGOL自编译性差自编译性差 PASCAL , C , ADA,C,JAVA自编译性强自编译性强实践示例:实践示例:用用PASCAL语言编写一个简单的编译程序,就是利用语言编写一个简单的编译程序,就是利用 PASC
6、AL的自编译性。的自编译性。北京航空航天大学计算机学院北京航空航天大学计算机学院812.3 自展自展 利用高级语言的自编译性,还可以通过自展方式生成语言的利用高级语言的自编译性,还可以通过自展方式生成语言的编译程序。编译程序。 设设L为自编译语言,自展生成为自编译语言,自展生成 L. Ao(A机目标形式的语言机目标形式的语言L的编译器,可在的编译器,可在A机上运行)机上运行)步骤:步骤:1.首先,将语言划分为首先,将语言划分为N个部分:个部分: L = L1+ L2+ Ln L1 核心部分核心部分 L2 Ln扩充部分扩充部分北京航空航天大学计算机学院北京航空航天大学计算机学院92.先用先用A机
7、上的汇编编写机上的汇编编写L1的编译程序,的编译程序,L1.Aa L1.AaAssemberL1.Ao3.用用L1编写编写L1+L2的编译程序的编译程序 (L1+L2). L1L1.Ao(L1+L2).Ao4.用用(L1+L2)编写编写L1+L2+L3的编译程序的编译程序 5.L. (L1+L2+Ln-1)(L1+L2+Ln-1).AoL.Ao北京航空航天大学计算机学院北京航空航天大学计算机学院10 (L1+L2).AoL.AoL1.Ao滚雪球式滚雪球式用自展方式进行编译,可提高生产率。因核心语言小,可用汇用自展方式进行编译,可提高生产率。因核心语言小,可用汇编实现。其余部分高级语言编写。比全
8、用低级语言效率高。编实现。其余部分高级语言编写。比全用低级语言效率高。.北京航空航天大学计算机学院北京航空航天大学计算机学院1112.4 编译程序的移植编译程序的移植移植:移植:将某台机上的成熟软件移植到另一台机器上,也就是将将某台机上的成熟软件移植到另一台机器上,也就是将宿主机上的软件移植到目标机上。如果使用具有自编译性的高宿主机上的软件移植到目标机上。如果使用具有自编译性的高级语言来书写程序,则移植是方便的。级语言来书写程序,则移植是方便的。宿主机宿主机AL. LL.Ao移植移植目标机目标机BL.Bo通过移植,在通过移植,在B机上可得到语言机上可得到语言L的编译程序,具的编译程序,具B机目
9、标形式,可机目标形式,可在在B机上运行。机上运行。北京航空航天大学计算机学院北京航空航天大学计算机学院12移植步骤:移植步骤:1. 将将L. L分为两部分:分为两部分: 一部分与机器无关一部分与机器无关 F.L 一部分与机器有关一部分与机器有关 A.L L. L = F.L+ A.L2. 根据目标机用语言根据目标机用语言L改写与具体机器有关的部分:改写与具体机器有关的部分: A.L B.L 交叉编译器:交叉编译器: I.L= F.L+ B.L 用用A机上的机上的L语言所写的能生成语言所写的能生成B机目标代码的语言机目标代码的语言L的编译程序。的编译程序。L产生产生A机代码机代码产生产生B机代码
展开阅读全文