大家好，现在开始我们这个课程的第三讲，程序运行的基本原理
之前我们解释了一个问题，计算机为什么能完成计算
这次课我们要解释的问题是计算机怎么完成计算的
计算在计算机里到底是如何进行的
这是我们这次课一个主要的目的。首先我们来回顾一下以前讲过的内容
我们前面讲了一个非常重要但是容易被忽视的问题
计算机为什么能够进行计算呢？我们给出的答案是这样的
比方有两个数：123+321，这两个数要在计算机里进行计算的话首先要把这两个数转换成二进制的数
然后这两个二进制数字之间的运算
都可以用基本的布尔运算来完成
那么这些所有的基本的布尔运算又可以通过电路来实现
所以电路是能用来计算的
确实在计算机里也是这样的
计算机本身就是由这样的电路构成的。这是我们已经了解到的内容
ok我们稍作整理。把这个思路稍微再整理一下。我们已经知道的是电路能完成计算，
所以如果想完成一个计算任务，就可以设计相应的电路
比方说我可以设计加法减法乘法除法 等等各种电路，这是我们已经可以做到的一件事情
那既然我可以设计电路来完成计算，那是不是
我就可以这样来做呢，当我需要完成某
项计算任务的时候，我就开始动手自己设计一个相应的电路。
好不好啊？太费劲了，因为世界上的计算有千万种，
你总不能给没一种计算都去设计一个相应的电路吧。 这个太费劲了 我们能不能这样做呢？
我设计好多个原子电路，需要的时候我就把这些
原子电路临时组装在一起。
有一个机器就是这样做的，那就是
ENIAC，ENIAC就是这样的，有不同的电路，需要的时候我就把他们连接在一起。 所以说我们看到的ENIAC全都是一堆线。
这样做仍然仍然太费劲了，如果我以后编程序都通过这个办法来进行
那简直太费劲了，不但是我们觉得费劲，牛人也觉得费劲。
比方说这个人，von Neumann（冯·诺依曼）
这是我们曾经介绍过的，冯·诺依曼在计算机领域
他的地位几乎可以和图灵并驾齐驱了。他也认为不能 通过重新组合不同电路的这种方式去完成新的计算任务，这是
这是太愚蠢的一个办法了。那怎么办呢？
于是冯·诺依曼给出了一种新的计算方式。这是我们曾经讲过的。他说，可以这样来做呀，
首先我们可以通过某种命令来控制计算机，
让计算机按照这种命令来执行。
我们可以想办法把这个命令给他，当然这个命令是用电信号来表示的。
这个命令不是临时输入到计算机里面的，
这个命令是用电信号来表示的，它不是临时输入到计算机里面的，而是存放在某些地方
随时可以更改的。当你想要计算机完成新的功能的时候，
你不需要重新组装电路，你只需要修改命令就可以了。
按照这种方式，冯·诺依曼制造了一台新的计算机，叫做EDVAC。 这是我们曾经讲过的。
而且呢他提出了一种新的计算机模型，
这个模型成为当今所有计算机的范本。
这个模型叫做存储程序式原理。
所以，我们这次课要解释清楚程序在计算机里面到底是怎么运行的，
我们就要首先了解一下现在所有计算机的范本，
这个存储程序式计算机这个范本
到底是个什么东西？它包含哪些部分？ 其中我们所需要知道这个命令，这个命令在存储程序式计算机
到底长成什么样子，它是怎么去被执行的呢？
再就是我们说到这个程序跟命令是不是一回事呢？
程序长成什么样呢？计算机怎么样才可以认识并且运行程序呢？这是我们接下来要搞清楚的问题。