程序原本(三十):程序设计的核心思想

阅读数:50 2019 年 9 月 28 日 18:22

程序原本(三十):程序设计的核心思想

但凡与计算机有些关系的领域中,总会有人通过编写一些代码、脚本或批处理来解决问题。这些工作大体上也包含了我们此前讲到的种种计算要素。但是这些只能算作编程,它并不等同于我们在这里谈论的程序设计,它是后者的一个初级阶段。学院式的编程是一种狭义的、升级版本的编码工作,而作为一个软件工程师,程序设计才是我们的必备技能1

1 我这样分类的很大一部分原因在于:有必要将整个软件开发、程序设计阶段需要完成的工作,纳入到我们的讨论范畴。

奠定我们如今主要的程序设计方法的那些基础理论和思想,在上个世纪的七十年代就已经成熟了。也正是从那之后,程序设计才从编码工作中脱离出来,成为一个有意义的、独立的名词。接下来的讨论以 Dijkstra 的论述为基础,包括:“计算的结构化 s(f)”和“数据的结构化 s(d)”两个方面,并且二者存在伴生的关系。
我们应该已经知道:抽象含义上的数是没有类型的。当我们讨论某种数的时候,即是在讨论某一类型的数,而非数的全部。而我们之所以分出这个数的型别,是指该类数具有相同的性质,例如正整数可以由 1 不断复合。同样,数据既然是数的系列,则数据的型别(即数据类型,Data Types)可以理解为系列性质的不同,亦即通过何种系列的抽象来分类数据。何种系列的抽象,即是数据结构2 3

2 数据结构与数据类型,前者是方法本身,后者是方法的表示。大多数情况下,也不妨将它们认为是同一个东西。

3 《结构程序设计》的第二篇中,作者霍尔(C.A.R Hoare,1980 年图灵奖获得者)采用数学定义的方式来说明数据类型:设已知有限个的,称其每一个为基数,所有基数的集合则为基型;由已知类型——含已知结构型和已知基型——构成的类型叫做结构型。基型的构造成分唯一,也因此它被称为非结构型,它或是计算环境提供的,例如 WORD 与 BYTE;或是程序员定义的有限个数,例如枚举。综上,(数据的)结构是一个过程,或称之为结构化。

评论

发布