返回
3.1.1 算法的表示
从 GCD 算法的例子看到它的表达比较自由,不过是自然语言加上
编程语言的基本特征 ( 控制结构、赋值、调用 ) 而已。很自然地,
读者就会问到“算法描述语言和编程语言有什么关系?”。事实
上,早期的编程语言 ALGOL 就叫算法语言。后来发现,用编程
语言描述算法往往使人们陷于表示的细节,因为编程语言的形
式化 ( 即正规性 ) 过于严格,而在设计程序的早期,人们关心的
是程序逻辑能否解题,而不是立即上机运行。于是先用伪代码
写设计,再用编程语言编码实现这个设计 ( 编码 ) 。
算法描述的是程序的计算逻辑,编程语言表达的是程序本体 ( 源代
码 ) 。更形象地说,一个是灵魂,一个是包含有灵魂的肉体。设
计过程也是人们对这个问题更深入了解的过程,反复修改是必
然的,何不先设计、修改好了一次翻译 ( 编码 ) 成功呢?于是
“先设计,后编码!”是早期软件行业不成文的行规。直到现在,
软件开发依然强调设计和编程是两个不同阶段。只是由于开发
工具的完善,伪代码越来越近似于最后实现的编程语言。甚至
有些简单编程直接用编程语言,如 VB 、 VC 在窗口上进行。伪
代码始终没有统一的标准。