第二课 重要范式(1)
课前导读
这一课讨论了五个最重要的编程范式:命令式、函数式、逻辑式、对象式和并发式。这些只是入门性的介绍,读者领会其精神即可,细节上不必过于在意。
本课共分四节——
1.命令范式
2.声明范式
3.对象范式
4.并发范式
2.1命令范式——一切行动听指挥
人生最伟大的目标是行动 ——《洛克菲勒的忠告》
关键词:编程范式,命令式,结构化编程,流程图
摘要:命令式编程简谈
?提问
什么是命令式编程?它为什么是最常见的编程范式?
什么是结构化编程?结构化编程的主要思想是什么?
:讲解
第二课伊始,冒号开门见山:“首先介绍一下最原始也是我们最熟悉的编程范式:命令式编程(imperative programming)。用命令式编写的程序由命令序列组成,即一系列祈使句:‘先做这,再做那’,强调‘怎么做’。更学术点说,命令式编程是电脑——准确地讲,是冯·诺伊曼机(von Neumann machine)——运行机制的抽象,即依序从内存中获取指令和数据然后去执行。从范式的角度看,其世界观是:程序是由若干行动指令组成的有序列表;其方法论是:用变量来储存数据,用语句来执行指令。”
逗号小声嘟囔着:“我们用的编程语言不都是命令式的吗?”
“应该说绝大多数语言是命令式的,但非命令式的语言也是存在的。关于后者,我们稍后再议。” 冒号纠正道,“这也在情理之中。语言的演化是渐进的,大多数语言追根溯源是汇编语言的升级,而作为与机器语言一一对应的汇编语言自然是命令式的,因而这种范式最为传统和普及。”
不料问号竟穷追不舍:“为什么机器语言就一定得是命令式呢?”
“我很欣赏你这种打破砂锅问到底的精神,不过你可以问到底,我却不敢保证能答到底哦。”冒号有些逗趣地说。
问号略带腼腆地笑了。
“从理论上而言,完全可以有非命令式的机器语言存在,前提是计算机采用了特殊的硬件实现,比如非冯·诺伊曼结构的数据流机(dataflow machine)和归约机(reduction machine)。但这类计算机并未流行于市,相应的机器语言自然罕见了[1]。”冒号还是给出了理由。