程序原本(十三):计算系统——抽象(“程序设计的精华”)

阅读数:39 2019 年 9 月 28 日 17:51

程序原本(十三):计算系统——抽象(“程序设计的精华”)

抽象是人们理解已知与未知事物的基本能力。例如你给旁边的同事甲介绍说:这段程序是张三写的啊。这时甲知道了“张三”,但并不知道张三的年龄身高、衣着打扮,所以这“张三”便是一个抽象。如果此时你把李四拉来旁边,说:不过这个人也出了些主意。这时,甲看到了活生生的,有年龄身高、衣着打扮的一个具象的人,却不知道这个人是李四。

抽象与具象是我们对事物的全部认识。只有当你指着那个人说“这是李四”的时候,同事甲才能把一个具象与抽象联系起来。所以事实是我们作为具象存在,而又用抽象来表明自己存在。这既构成了我们的人类世界,也同样构成了我们的计算世界。而这样的关系,在程序中不过是一行代码:

复制代码
var aNum = 0

在此前的讨论中,我们说aNum是一个标识,上述代码声明了aNum的两项性质:一,它是变量;二,它指代数据 0。从抽象的标识aNum,到它作为具象的上述两项性质,我们事实上已经看到了(并非物理上的)计算系统的绝大部分构成。无怪乎 Dijkstra 说:“人们一旦了解在程序设计中如何使用变量,他就掌握了程序设计的精华。”

评论

发布