1.2 什么是计算机
据说,一部《红楼梦》,经学家看见“易”,道学家看见“淫”,才子看见“缠绵”,革命家看见“排满”,而流言家看见宫闱秘事……。
我在小学三年级第一次看《红楼梦》,结果只看到一堆的不认识的字,笔划特别多,后来才知道那叫“繁体字”。
那时候,我还不是程序员,如果现在我以程序员的眼光去“重逛”一下大观园,我会看到一部什么样的红楼呢?程序员和红楼梦,有些不靠谱,我们还是来说一说计算机的事吧。
什么是计算机?
有学员说:“上网的,上QQ的!玩游戏的!”。不能说完全不对,但这是以计算机的普通用户的角色来说的,但我们现在是程序员——好吧,我承认我们至今还没有写过一行代码,但那也至少是个“预备程序员”吧。
计算机,犹其是指PC(个人计算机),如果是台式机的话,通常有个显示器,还有个主机箱;如果是笔记本的话,那就薄了点……还是不对,这是从外观上描述什么叫计算机了。
计算机,人类最新发明的一个伟大的工具,如今已经无处不在,并有处处地,深刻地影响着人类的生活。在漫漫的历史长河中,唯有“火、机械、电、电子”等等工具可以和计算机在这一点上肩……这一段说得很有深度,但怎么听怎么像历史学家该讲的话。
1.2.1.“冯诺依曼”版
算了,我不在这里浪费大家的时间了,让我们先搬出一位名人来。计算机界的名人。第一位搬出的,是有“计算机之父”之称的“冯·诺依曼”。
冯·诺依曼明确规定出计算机的五大部件: 运算器CA、逻辑控制器CC、存储器M、输入装置I和输出装置O,并描述了五大部件的功能和相互关系。
冯·诺依曼想出“存储程序”的办法,程序也被他当作数据存进了机器内部,以便电脑能自动一条接着一条地依次执行指令。
冯·诺依曼明确提出此类计算机采用二进制数制,以充分发挥电子器件的工作特点,使结构紧凑且更通用化。
“旧时王谢堂前燕,飞入寻常百姓家”,本用于科研计算机,已进入千家万户。不过所有这些计算机,都属于“诺依曼机”。
冯·诺依曼规定的计算机五大部件,最为出彩的部分是“存储器M”,特别是指其中的“内部存储器”。这是为什么?
1.2.2. “白话 C++”版
结合名家的理论,我们用自己的话,想想什么是计算机。
首先,计算机由硬件和软件组成。至于什么叫硬件(什么叫软件,我们下一小节说明)。
接着,计算机硬件的组成,老冯说了,有五个部分:“运算器CA、逻辑控制器CC、存储器M、输入装置I和输出装置O”。我们可以进一步归纳成三部分:
其中“输入/输出设备”最容易理解,因为事实上只要是工具,特别是机械,就差不多都会有直观的“输入/输出”。比如汽车。
输入设备 |
方向盘、油门、刹车板…… |
输出设备 |
车轮…… |
处理器 |
齿轮、轴承…… |
存储设备 |
油箱、水箱…… |
(表格 1 “汽车”的输入、输出、存储设备及“中央处理器 ”)
输入输出设备比较好理解。通过方向盘的输入,可以输出车轮的转向;通过油门或刹车板,可以输出车轮的转速。
不过我们不要把“输入输出设备”和“输入输出数据”一时混了。方向盘是设备,而你转方向盘时的动作中包含的力量扭矩、速度、力度,那些是输入数据。
车轮是输出设备,但输出数据是车的速度,车的行驶方向。
关于处理器,有人说应该是驾驶员的大脑。这样说似是而非。如果把“人脑”当成我们所讨论的“汽车”的中央处理器,那么人就成成为汽车的一部分——可是这不符合事实;如果人是汽车的一部分,那么,最主要的输入设备应该是我们伯的眼睛和耳朵等等。
“处理器”的典型工作是:“吃”进一些数据,然后“吐”出一些数据。吐出来的数据,和当初吃进去的数据,通常有所变化,这些变化正是处理的成果。 比如你的胃就是一台强大的处理器。
对 汽车而言,连接它“方向盘,刹车板、油门”这些输入设备及“车轮”等输出设备之间的机械,就是它的CPU(中央处理单元)。——当你踩下油门,同时把方向 盘打向左,那些齿轮、轴承等设备,忠实而精确进行了运算,于是,车轮向左一拐,并加速飞驰——在路的右边,是万丈悬崖。处理器很重要,你理解了吗?
计 算机的存储设备分为“内存”和“外存”。不过对于汽车来说,油箱和水箱(或者再算上蓄电瓶)之类的设备,只勉强够得上“外部存储器”这一级别。我们很难从 普通工具上,找到与计算机的“内部存储器”对应的设备。前一小节提过:冯·诺依曼设想中的“内部存储器”,是最为出彩之处。由于“内存”是如此的重要,我 们先在此放过,等到我们明白了类似“指令、程序”等等概念后,再来专门重新谈谈内存吧。
我们将更多的计算机原理级别的内容,放在后面第4章中。这一小节的内容仅讲到这里,也许你对“什么计算机”还有些模糊,不过我相信你对于我们满大街跑的汽 车,一定有了新的认识。没错,当你习惯用“程序员”的眼光去这个世界,你一定会惊奇的发现:原来处理都是“输入、输出”设备,到处都是“处理器”。 程序员,是时候试试你的新目光了!站起来走走,重新“鉴赏”一遍你家的各类电器。如果你做到了这一点。你已经有了一个很好的开始。
是时候试试你——一个预备程序员的新目光了!站起来走走,重新“鉴赏”一遍你家的各类电器。如果你做到了这一点。你已经有了一个很好的开始。