固件计算机 如前定义,计算机=算法集+数据结构集 可执行程序表示为计算机的机器语言程序 通常认为计算机操作在相当低级的机器语言之上,具有简单 的指令格式。然而,机器语言并不一定限制到低级 可以选择任何程序设计语言,精确地刻划数据结构集和定乂 程序执行规则的算法,这样该计算机的“机器语言”就是该 高级语言 每个程序定乂了计算机的初态,程序执行的规则定义了程序 执行过程中状态的变迁序列,程序执行结果由程序执行完成 后计算机的终态决定
固件计算机 •如前定义,计算机=算法集+数据结构集 可执行程序表示为计算机的机器语言程序 •通常认为计算机操作在相当低级的机器语言之上,具有简单 的指令格式。然而,机器语言并不一定限制到低级。 •可以选择任何程序设计语言,精确地刻划数据结构集和定义 程序执行规则的算法,这样该计算机的“机器语言”就是该 高级语言。 •每个程序定义了计算机的初态,程序执行的规则定义了程序 执行过程中状态的变迁序列,程序执行结果由程序执行完成 后计算机的终态决定
给定一个精确的计算机定义,总是可能将其用硬件实现, 从而可使计算机的机器语言为C、Ada、或其他高级语言 如此考虑的一个重要的基本原则是:任何精确定义的算法 或数据结构可以用硬件实现 计算机简单地是算法和数据结构的集合,我们可以假定其 硬件实现是可能的,不管其复杂度和相应的机器语言。 ·实际的计算机通常有相当低级的机器语言。高级语言作为 机器语言会使机器非常复杂,具应用灵活性较差。 个具有低级通用指令集和简单的、无结构的主存和寄存 器的计算机可以被编程为相当广范围的高效计算机
•给定一个精确的计算机定义,总是可能将其用硬件实现, 从而可使计算机的机器语言为C、Ada、或其他高级语言。 •如此考虑的一个重要的基本原则是:任何精确定义的算法 或数据结构可以用硬件实现。 •计算机简单地是算法和数据结构的集合,我们可以假定其 硬件实现是可能的,不管其复杂度和相应的机器语言。 •实际的计算机通常有相当低级的机器语言。高级语言作为 机器语言会使机器非常复杂,具应用灵活性较差。 •一个具有低级通用指令集和简单的、无结构的主存和寄存 器的计算机 可以被编程为相当广范围的高效计算机
个常用的选择(相对于计算机的严格硬件实现)是固件 计算机,由运行在特殊的微可偏程硬件计算机上运行的微 程序来仿真 这种计算机的机器语言是绝对低级的微指令集,用微指令 集可编码得到微程序,微程序将仿真所希望的计算机的操 作,并定义了解释周期和各种基本操作。 通常微程序本身驻留在特殊的只读存储器中,由宿主机硬 件高速执行,这种计算机在执行速度上和硬件直接实现计 算机无太大差别。 计算机的微程序仿真有时可称为 emulation(仿真),该计 算机称为虚拟机,因为机器本身并不存在
•一个常用的选择(相对于计算机的严格硬件实现)是固件 计算机,由运行在特殊的微可偏程硬件计算机上运行的微 程序来仿真。 •这种计算机的机器语言是绝对低级的微指令集,用微指令 集可编码得到微程序,微程序将仿真所希望的计算机的操 作,并定义了解释周期和各种基本操作。 •通常微程序本身驻留在特殊的只读存储器中,由宿主机硬 件高速执行,这种计算机在执行速度上和硬件直接实现计 算机无太大差别。 •计算机的微程序仿真有时可称为emulation(仿真),该计 算机称为虚拟机,因为机器本身并不存在
翻译器和软件仿真计算机 理论上,有可能直接构造硬件或固件计算机,运行任何特 殊的程序设计语言,但构造这样的计算机并不经济。 现实的考虑是实际计算机采用低级机器语言(基于速度 灵活性和价格考虑),编程仍以高级语言进行。语言实现 者面临的任务是如何使高级语言程序执行在实际计算机上 不管其机器语言。 这个实现问题有两个基本方案 1、翻译(编译) 髙级语言程序→翻译器→等价的机器语言程序→硬件直 接执行 源语言→目标语言
翻译器和软件仿真计算机 •理论上,有可能直接构造硬件或固件计算机,运行任何特 殊的程序设计语言,但构造这样的计算机并不经济。 •现实的考虑是实际计算机采用低级机器语言(基于速度、 灵活性和价格考虑),编程仍以高级语言进行。语言实现 者面临的任务是如何使高级语言程序执行在实际计算机上, 不管其机器语言。 •这个实现问题有两个基本方案。 1、翻译(编译) 高级语言程序→翻译器→等价的机器语言程序→硬件直 接执行 源语言→目标语言