C++面向对象程序设计
上QQ阅读APP看书,第一时间看更新

1.1.1 机器语言与汇编语言

从1946年2月世界上第一台数字电子计算机ENIAC诞生以来,在这短暂的70多年间,计算机科学得到了迅猛发展,计算机及其应用已渗透到社会的各个领域,有力地推动了整个信息化社会的发展,计算机已成为信息化社会中必不可少的工具。

计算机系统包括硬件和软件。计算机之所以有如此强大的功能,不仅因为它具有强大的硬件系统,而且依赖于软件系统。软件包括了使计算机运行所需的各种程序及其有关的文档资料。计算机的工作是用程序来控制的,离开了程序,计算机将一事无成。程序是指令的集合。软件工程师将解决问题的方法、步骤编写为由一条条指令组成的程序,输入到计算机的存储设备中。计算机执行这一指令序列,便可完成预定的任务。

所谓指令,就是计算机可以识别的命令。虽然在人类社会中有丰富的语言用来表达思想、交流感情、记录信息,但计算机却不能识别它们。计算机所能识别的指令形式,只能是简单的0和1的组合。一台计算机硬件系统能够识别的所有指令的集合称为它的指令系统。

由计算机硬件系统可以识别的二进制指令组成的语言称为机器语言。毫无疑问,虽然机器语言便于计算机识别,但对于人类来说却是晦涩难懂,更难以记忆。可是在计算机发展的初期,软件工程师们只能用机器语言来编写程序。这一阶段,在人类的自然语言和计算机编程语言之间存在着巨大的鸿沟,软件开发的难度大、周期长,开发出的软件功能却很简单,界面也不友好。

不久,出现了汇编语言,它将机器指令映射为一些可以被人读懂的助记符,如ADD、SUB等。此时编程语言与人类自然语言间的鸿沟略有缩小,但仍与人类的思维相差甚大。因为它的抽象层次太低,程序员需要考虑大量的机器细节。

尽管如此,从机器语言到汇编语言,仍是一大进步。这意味着人与计算机的硬件系统不必非得使用同一种语言。程序员可以使用较适合人类思维习惯的语言,而计算机硬件系统仍只识别机器指令。那么两种语言间的沟通如何实现呢?这就需要一种翻译工具(软件)。汇编语言的翻译软件称为汇编程序,它可以将程序员写的助记符直接转换为机器指令,然后再由计算机去识别和执行。