- 1、本文档共119页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
1.统一高级语言 由于高级语言是面向题目和算法的,与机器的具体结构关系不大,如果能统一出一种可满足各种应用需要的通用高级语言,那么用这种高级语言编写的应用软件就可以移植于不同机器。如果操作系统的全部或一部分用这种高级语言编写,则系统软件中的这部分也可以移植。所以实现软件移植的一种技术是如何统一高级语言,设计出一种完全通用的高级语言,为所有程序员所使用。这样,结构相同以至完全不同的机器之间都能实现高级语言程序的软件移植。 问题是至今虽然已有上百种高级语言,但没有一种是对各种应用真正通用的高级语言,原因有以下几种: 第一,不同的用途要求语言的语法、语义结构不同。如FORTRAN适用于科学计算,COBOL适用于事务处理,它们的语义、语法结构差异较大,难以一致。程序员又都希望使用特别适合其用途的语言,不愿增加那些不想要的功能,否则语言难以掌握,编译程序过大,编译效率过低。 第二,人们对语言的基本结构看法不一。以GOTO语句为例,一部分人认为它可使编程灵活,应予以保留,不少人又认为它是造成程序复杂化、不易读、不易检验和不易排错的主要原因,应予取消。因此,要能设计出真正满足各方面需要、又有相当大发展前途的通用语言还需进行大量的研究工作。所以,多种高级语言还将长期存在。 第三,即使同一种高级语言在不同厂家的机器上也不能完全通用。这是因为各种机器的字长、“机器零”定义、I/O设备种类和数量、子程序结构、寻址空间、操作系统等不尽相同。厂家为发展自己的特色常使用“方言”。为节省存储空间,提高执行速度,在高级语言软件中部分嵌入汇编语言程序,使同种高级语言编写的软件也难以完全移植。 第四,受习惯势力阻挠,人们不愿抛弃惯用的语言,因为熟悉、有经验,也不愿抛弃长期积累的、用原有语言编写并已被实践证明是正确的软件。因此,目前每种机器都得配上对应于多种较为通用的高级语言编译系统。对同一种高级语言,各个机器的编译系统软件不同,无法通用,这都不利于系统结构的发展。 2.采用系列机 在所有领域和所有机器上统一使用一种高级语言很困难,与传统机器级和微程序机器级更近、依赖性更大的汇编语言和机器语言的统一就困难多了。受相对统一成少数几种高级语言的启发,如果能在一定范围内不同型号的机器之间统一汇编语言,就可以在一定程度上解决汇编语言软件的移植。显然,这只有在结构相同或相似的机器之间才可以做到,如果差别大,企图通过配不同汇编程序来使不同型号的机器有相同的汇编语言,几乎是不可能的。同理,统一机器语言来实现软件移植也只能在结构相同的机器之间才可以做到。这就是研制系列机的原因。 系列机与前述从中间向两边设计相呼应。在软、硬件界面上设定好一种系统结构(系列机中称系列结构),其后,软件设计者按此设计软件,硬件设计者根据机器速度、性能、价格的不同,选择不同器件、硬件和组成、实现技术,研制并提供不同档次的机器。 系列机较好地解决了软件环境要求相对稳定和硬件、器件技术迅速发展的矛盾。软件环境相对稳定就可不断积累、丰富、完善软件,使软件产量、质量不断提高,同时又能不断采用新的器件和硬件技术,使之短期内即可提供新的、性能不断提高的机器。 系列内各档机器之间软件兼容从速度和性能上有向上兼容和向下兼容的不同。向上(下)兼容指的是按某档机器编制的软件,不加修改就能运行于比它高(低)档的机器上。同一系列内的软件一般应做到向上兼容,但向下兼容就不一定,特别是与机器速度有关的实时性软件向下兼容就难以做到。而低档机器上的软件在高档机器上运行一般总是可以通得过的,只是机器效率没有得到充分发挥而已。 在系列机中,低档机的速度性能一般要求不高,只希望能有低的价格;高档机则为提高速度可以不惜加大成本,采用先进的器件及复杂的组成和实现技术。所以,在系列机中,中档机的性能价格比通常总比低档和高档的要高,如图1-5所示。因此,对系列机来说,所谓优化性能价格比,指的是在满足性能的前提下尽量降低价格,或在某种价格情况下尽量提高性能。 图1-5系列机中各档机器的性能价格比状况 3.模拟和仿真 系列机只能在系统结构相同或相近(允许向后稍许发展)的机器之间实现汇编语言软件的移植。为实现不同系统结构的机器之间的机器语言软件移植,就必须做到在一种机器的系统结构上实现另一种机器的系统结构。从系统结构的主要方面——指令系统来看,就是要在一种机器上实现另一种机器的指令系统,即另一种机器语言。 例如,要求原来在B机器上运行的应用软件,能移植到有不同系统结构的A机器上,根据层次结构概念,可把B机器的机器语言看成是在A机器的机器语言级之上的一个虚拟机器语言,在A机器上用虚拟机概念来实现B机器的指令系统,如图1-6所示。B机器的每条机器指令用A机器
文档评论(0)