- 1、本文档共51页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
机器体系机构对程序语言的影响
概述 早期程序设计语言的设计目标是:使程序能够在价格昂贵的硬件机器上高效运行。因此,尽管当时使用的语言(如fortran)编程很困难,但它们都拥有高效的转换机制将源程序转换为机器代码。 但如今,计算机的性能价格比不断提高,软件的体系结构发生了重大变化,软件的成本越来越变得昂贵,因此现在程序设计强调程序设计的正确性、可读性和可维护性。 可见软件的体系结构对语言的设计也起到重要的作用,主要表现在两个方面:程序将在那种计算机上运行;实际的硬件所支持的程序执行模型或虚拟机。 2.1 计算机的操作 一台计算机是一个可以执行算法和存储数据的有机整体。一台计算机*包含六个主要组成部分,并与程序设计语言组成部分紧密对应,它们分别是: 数据:计算机提供的基本数据元素和数据结构。 基本操作:计算机对数据实施的基本动作。 顺序控制:控制操作执行顺序的机制。 数据存取:对每次操作执行所需数据的存取控制机制。 存储机制:计算机提供的存储分配机制。 操作环境:支持程序和外部环境通信的机制。 注:这六个部分也是设计程序语言的六个基本特征。 *:此处所讲得的计算机可以是物理硬件设备,也可以是通过软件模拟的计算机。 本节主要内容 计算机的硬件结构 固件计算机 翻译器和软件模拟计算机 计算机的硬件结构 数据 数据在程序执行过程中需要存储,从图可见,主要有四个存储部件:主存(MM)高速缓存(Cache),高速寄存器(R)和外部辅助存储器(SM)。这些存储部件的性能不同,存储数据的特点有异。 计算机由一些内部数据类型可被硬件直接操作,包括正型数据、单精度实数、固定长度字符串和位串。 其实,程序在某种意义上也是一种数据,其计算机的内部表示方法是机器语言。 操作 每台计算机都有一个内部基本操作集与机器语言指令相对应。 一个典型的操作集包括与内部数据类型相关的基本算术指令(即整数和实数的加、减、乘、除法指令),测试指令(如判断0,判断正、负数的指令),数据存取操作指令、控制I/O指令以及执行顺序控制指令等。 顺序控制 在机器语言程序中,下一条要执行的指令通常由程序地址寄存器(AR)的内容确定,为了将控制转移到程序某处,必须提供修改AR内容的基本操作。而最终控制程序执行顺序的是解释器。解释器是计算机操作的核心。如图所示。 数据存取 一般,一条机器指令的格式是:操作码+操作数域,如ADD AX, [8012H]. 一般操作数存储在寄存器R或主存储MM中。计算机必须提供一个指定和获取操作数的机制。同样,处理(计算)的结果也必须存储在某个地址单元中。 存储管理 主存MM、辅助存储器SM与CPU的速率相差很大。如CPU每次操作的时间一般是纳秒(ns)级,MM的存取速率是微秒(us)级,而SM的存取速率是毫秒(ms)级,为了对速率进行平衡,需要采用不同的存取管理机制。 为了平衡CPU与SM之间的速率矛盾,OS通常使用多道程序设计技术。 为了平衡CPU与MM之间的速率矛盾,通常使用高速缓存cache。 操作环境 计算机的操作环境包括外围存储器和I/O设备。这些外部设备构成了计算机的外部世界,任何同计算机的通信必须通过操作环境进行。不同的外部操作设备具有不同的通信速率,如高速存储器(扩充存储器),中速存储器(CD-ROM),低速存储器(磁带),I/O设备(键盘、显示器、打印机、数据通信线路等),因此,程序设计语言必须提供不同的通信机制。 固件计算机 前面,我们将计算机定义为能够存储和执行程序的数据结构和算法的集合,计算机内执行的程序是以机器语言编写的。 我们一般认为机器语言是低级语言,然而,实际上,任何一种语言(如C,java)都可以作为机器语言,只要精确的定义其算法和数据结构。即任何一台精确定义的计算机都可以完全使用硬件或软件来实现。理论和逻辑上,硬件和软件具有统一性,即硬件上能够实现的使用软件肯定也能实现,反之亦然。但现实中由于成本及其他实现技术问题。很少采用纯硬件和纯软件实现。 固件计算机是一个相对较为严格的硬件实现方式。即在一台可进行微编程的硬件计算机上通过微程序模拟实现。该计算机的机器语言包括一个低级微指令集,它们规定了MM和cache间、各R间通过加法器或乘法器的数据传送。微程序在可编程的主机上模拟计算机操作。微程序通常存储在主机的一个特殊的ROM中,并由主机硬件高速运行。 计算机的微程序模拟也称之为仿真。由于计算机是使用微程序模拟的,并不实际存在,因此仿真计算机也称之为模拟计算机。 翻译器和软件模拟计算机 如前所述,理论上,可以设计一种硬件或固件计算机来直接执行某种语言(如C语言)编写的程序,但现实中仍然使用具有低级机器语言的实际计算机,why? 成本、速度、灵活性 高级语言在具有低级机器语言的实际计算机上如何运行? 解决方案: 翻译(编译); 软件模拟(软件解释);
文档评论(0)