《虚拟机的设计与实现:CC++--4》C语言-虚拟处理机.pdfVIP

《虚拟机的设计与实现:CC++--4》C语言-虚拟处理机.pdf

  1. 1、本文档被系统程序自动判定探测到侵权嫌疑,本站暂时做下架处理。
  2. 2、如果您确认为侵权,可联系本站左侧在线QQ客服请求删除。我们会保证在24小时内做出处理,应急电话:400-050-0827。
  3. 3、此文档由网友上传,因疑似侵权的原因,本站不提供该文档下载,只提供部分内容试读。如果您是出版社/作者,看到后可认领文档,您也可以联系本站进行批量认领。
查看更多
下载 第8章 高 级 论 题 有些运行时系统—如J a v a虚拟机—是以一种程序设计语言为目标而实现出来的。我没有 追随这股潮流,我设计的 H E C虚拟机没有偏向于任何一种程序设计语言。如果你想为 H E C虚拟 机提供一种结构化的程序设计语言,那需要知道的东西我都已经在第 7 章里讲过了。如果你想为 H E C虚拟机提供一种面向对象的程序设计语言,那就得掌握这一章的内容。本章内容可以分为 三大部分。首先,为了在 H E C 虚拟机上实现各种面向对象的程序功能,我们需要有一个基本的 思路,本章第一部分内容的侧重点就是向大家介绍这种思路。 本章第二部分内容的侧重点是 H E C虚拟机的移植和建造。既然一直在强调可移植性,我至 少要搞出个 L i n u x 移植版本才能问心无愧地面对自己。为了帮助大家看懂源代码,我将把在 L i n u x和W i n d o w s 上实现H E C运行时系统的必要步骤向大家做一个解释。 最后,如果你觉得 H E C虚拟机达不到你的预期目标,可以参考本章最后一个部分的内容去 建立你自己的虚拟机。建立一台虚拟机与建立一个操作系统有一定的共通之处,有些步骤是这 两项工作都必须经历的。因此,我想干脆把操作系统的实现方法向大家做一个简单的介绍,也 许你正想自己编写一个操作系统呢。从无到有地建立一个操作系统一直是我的一个梦想,但我 以前并不知道该从什么地方开始入手,直到结识了几位曾经在 Control Data 公司就职的资深工程 师以后我才算开了窍。而我将在这里把他们告诉我的基本思路和方法分享给大家。 8.1 HEC虚拟机与高级语言:编译器设计 8.1.1 复杂性管理 如果你仔细研究过这本书中所有的汇编源代码示例,就应该有得出这样一个结论:用汇编 语言来写程序是一项极其枯燥的工作,你的大部分精力都消耗在各种琐碎的细节上。总而言之, 用汇编语言来设计程序是一种时间和精力的浪费,用汇编语言写出来的程序在可维护性和可移 植性方面有着天生的不足,长期使用汇编语言甚至会对你的思维产生负面影响。 既然汇编语言有这么多的缺点,我们为什么还要用这本书几乎全部的内容来讨论它呢?我 是不是在故意浪费大家的时间和精力呢? 不是,我从没想过要欺骗大家。要知道,学习汇编语言和计算机体系结构是掌握计算机科 学的必经之路,是学习其他东西的基础。要想编写出更有用的高水平开发工具,就必须对最基 本的程序设计元素有一个了解—至少要看得懂这些工具所生成的输出结果吧。如果不花时间 去打好基础、不花时间去搭造脚手架,就不可能建立起坚固而又实用的大厦。 程序设计并不是非得用汇编语言才行。但要想编写出具有实用价值的高水平工具,就必须 掌握汇编语言程序设计技术。 复杂性是人们在软件工程项目上必然会遇到的最基本、最核心的问题。程序设计语言就是 第8章第高 级 论 题工具5 9 3 下载 因为人们在控制和管理复杂性方面的需求而不断地发展和进化的。 Howard Aiken (荷华德·艾肯)在1 9 4 4年制造出了MARK I机器,当时的程序都是些硬编码 形式的二进制数字。随着时间的推移,程序的规模越来越大,使用二进制数字来编写程序的做 法不再适应形势的发展。在 1 9 4 9年,人们为UNIVAC I机器开发出了第一个汇编语言。汇编语言 用简炼的符号化助记符代替了纯粹的二进制数字,使程序设计工作的复杂程度大大降低。早期 的程序员必须亲手写出下面这样的东西: 10101110 有了汇编语言之后,这条二进制指令就可以被写为: INC AR 0x6B 这种符号化的记号虽然很原始,却实实在在地简化了程序设计工作。但程序规模及其复杂 性很快就增加到必须用一些新东西来管理和控制的程度了。到了 5 0年代,随着集成电路的出现, 各种高级程序设计语言也渐渐地露出了头角。 C O B O L和F O R T R A N就是这一时期的代表性程序 设计语言。所有这些早期的程序设计语言都是基于代码块的,如果你想从一个代码块移动到另 一个代码块,就必须使用G O T O语句或与它类似的东西。 基于代码块的程序设计语言导致了结构化程序设计技

文档评论(0)

***** + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

版权声明书
用户编号:8135026137000003

1亿VIP精品文档

相关文档