解谜计算机科学-王垠著(连载中)

绪论:解谜计算机科学

写作动机

爱因斯坦:如果你不能把一个问题跟六岁小孩解释清楚,那你并不真的理解它

写作目标

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
if(你看过此书):
while(世界末日 and 计算机不复存在):
你可以从头开始制作计算机,cool!
```
## 第一章:初识计算
### 计算的本质
- 手指算数便是最简单的计算机
- 计算图:抽象是计算机科学至关重要的方法
![](http://www.yinwang.org/csbook-images/adder.png)
![](http://www.yinwang.org/csbook-images/add-mult.png)
- 并行计算
![](http://www.yinwang.org/csbook-images/parallel.png)
#### 并行计算虽好,但是还会引发其他的问题:
- 并行计算的计算机运算速度不一样:等待时间太长了!
- 计算机之间的通信开销会极大地降低效率
- 编译

``` js
(5 - 3) * (4 + (2 * 3 - 5) * 6)
===>
{
a = 2 * 3
b = a - 5
c = b * 6
d = 4 + c
e = 5 - 3
e * d
}

使语句的结果与原来的表达式完全一致。这种保留原来语义的翻译过程,叫做编译

  • 函数
    考虑如下的场景:我们想要表达一个“风扇控制器”,风扇的转速总是当前气温的两倍。

    1
    2
    3
    t->t*2 //这便是我们的风扇控制器,也就是一个最简单的函数:
    f(t) = t*2 //让我们更规范一些
    f(2) // 值为4
  • 分支
    考虑如下的场景:我们想要一个“饮料选择器”

    1
    2
    3
    4
    5
    6
    7
    8
    t-> if(t < 22)
    {
    "hotpot"
    }
    else
    {
    "ice cream"
    }
  • 总结:计算的要素

    1. 基础的数值。(整数,字符串,布尔值等等)
    2. 表达式。(基本的算数表达式)
    3. 变量和赋值语句。
    4. 分支语句
    5. 函数和函数调用

      像学开车一样,一旦你掌握了油门,刹车,换挡器,方向盘,速度表的功能和用法,你就学会了开所有的汽车,不管它是什么型号的汽车。

请zzy824喝杯咖啡
0%