基于栈结构的虚拟机研究与实现

来源 :西南交通大学 | 被引量 : 0次 | 上传用户:lx2000
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
在应用软件的开发中,虚拟机的概念对于解决软件开发中核心问题,如代码可维护性,系统健壮性,具有重要的指导性作用。不但在早期计算机的软硬件设计方面,起到核心作用,在现实的软件开发中,特别是嵌入式系统上,仍具有重要的指导性。同时由于虚拟机的复杂性,分析和实现虚拟机系统需要的文献资料和设计实例,不是缺少完整性,就是在对应联系方面缺少指导性。本论文着重解决此矛盾。虚拟机是解决计算机软件、硬件日益升级换代与应用开发及维护日益复杂的一种有效的解决方案。本文作为工科应用论文,实现了内核结构小巧且完整的栈式虚拟机,对虚拟机设计的算法和结构结合具体实例给出了完整的算法实现,同时提供了高级语言Csmart及其编译器,从而构成了一个有很好参考性的完整的虚拟机解决方案。虚拟机在实现的架构选择上,有两种实现方式,基于栈结构和基于寄存器结构,而这两种方式直接关系到虚拟指令系统的设计方式,栈结构对应于精简指令系统,而基于寄存器方式则对应复杂指令系统。由于栈式结构可以很容易实现CPU中通用寄存器的软件功能,从而使得虚拟机上的应用能更好的可移植性。本文将要介绍的虚拟机就是基于栈结构的虚拟机。通过对这两种实现方式的分析和研究,特别是对基于栈结构java虚拟机实现的研究,实现了一个基于栈结构的小巧但完整的虚拟机SVM(Stack-based virtual machine)。SVM的的核心设计部分,虚拟运行时系统和指令解析器部分的数据结构和算法上,化繁为简,图文并茂,条理突出,对虚拟机设计者提供很好的,在学术和实践方面有很强的参考性。同时,虚拟机需要一个高级语言和相应编译系统才能有效的开发应用。本文实现的虚拟机的高级语言为Csmart,其是抽取C语言的一个子集来定义的,易于理解,简单实用,不但增强SVM参考性,同时对于高级语言的编译和代码生成给出了简洁又不是完整的叙述。Csmat的编译器是采用递归下降的方式实现的。这种方式的创新点在于将Csmart程序的扫描分析(词法和语法)和代码生成在一次扫描中完成,可以将语言结构简单的Csmart有效的编译成机器码,而且实现编译器的代码量少且结构简单。通过一篇论文的篇幅介绍了一个小巧但功能完整的虚拟机系统,对于虚拟机设计和实现,编译原理的实践和研究都有具有很好的参考价值。
其他文献
优化问题是一个古老而又具有挑战性的问题,优化问题被广泛的用于科学研究与工程实践中。传统的优化方法计算量大、复杂程度高,难以求解复杂的优化问题,有时无法找到问题的全局最
流应用是从科学计算、多媒体等领域中抽象出的一类应用,并且还成为了微处理器上的主要负载形式。序列比对是生物信息学的基本操作之一,具有计算密集性、并行性和局域性等特点
SAR(Synthetic Aperture Radar)图像目标检测作为SAR自动目标识别ATR(Auto Target Recognition)系统的第一步,对ATR系统后续的目标鉴别、目标识别与目标分类等过程具有十分重
随着现代社会信息量的不断增大,不正确、不一致、不确定的劣质数据开始普遍存在于数据管理系统中,极大地降低了数据的质量,给社会带来了严重的损失。因此,迫切需要新的技术来处理
随着信息技术的发展,P2P技术作为一种新型的网络应用模式受到了广泛关注。传统的互联网使用集中式拓扑结构,存在单点失效、服务器瓶颈等缺陷,P2P网络的出现能够较好的解决这些问
目前各大医院重症监护室(ICU)的监护中存在着急性低血压(AHE)抢救及护理难题。AHE的发生不仅会影响治疗效果,并且严重威胁着患者的生命安全。近年来随着医疗监护技术和信号分
普适计算已经成为当今世界的一个研究热点,国内外学者在普适计算方面已经做了大量的研究工作。普适计算要求做到信息空间和物理空间的融合,用户可以随时透明地获得需要的服务。
随着信息技术的迅速发展和Internet的广泛普及,产生的数据量日益增多,如何从这些大量的数据中发现有用的信息来帮助人们对未知的现象作出正确的指导和预测,就成为了十分迫切的课
随着网络技术和信息技术的快速发展,图像数据的数量也在激剧增长,有效的图像检索变得十分重要。最初的图像检索技术是通过图像附加的文字标注进行检索,即所谓的基于文本的图像检
图像匹配算法作为计算机视觉中最重要的研究方向之一,可分为基于灰度信息和基于特征信息两大类。其中,对于基于特征点的匹配算法,常通过几何变换模型进行匹配。目前,大部分关于几