快速业务通道

冒号课堂§2.1:命令范式 - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-16

冒号课堂§2.1:命令范式

时间:2011-06-25 BlogJava xyz98

第二课 重要范式(1)

课前导读

这一课讨论了五个最重要的编程范式:命令式、函数式、逻辑式、对象式和并发式。这些只是入门性的介绍,读者领会其精神即可,细节上不必过于在意。

本课共分四节——

1.命令范式

2.声明范式

3.对象范式

4.并发范式

2.1命令范式——一切行动听指挥

人生最伟大的目标是行动             ——《洛克菲勒的忠告》

关键词:编程范式,命令式,结构化编程,流程图

摘要:命令式编程简谈

?提问

什么是命令式编程?它为什么是最常见的编程范式?

什么是结构化编程?结构化编程的主要思想是什么?

:讲解

第二课伊始,冒号开门见山:“首先介绍一下最原始也是我们最熟悉的编程范式:命令式编程(imperative programming)。用命令式编写的程序由命令序列组成,即一系列祈使句:‘先做这,再做那’,强调‘怎么做’。更学术点说,命令式编程是电脑——准确地讲,是冯·诺伊曼机(von Neumann machine)——运行机制的抽象,即依序从内存中获取指令和数据然后去执行。从范式的角度看,其世界观是:程序是由若干行动指令组成的有序列表;其方法论是:用变量来储存数据,用语句来执行指令。”

逗号小声嘟囔着:“我们用的编程语言不都是命令式的吗?”

“应该说绝大多数语言是命令式的,但非命令式的语言也是存在的。关于后者,我们稍后再议。” 冒号纠正道,“这也在情理之中。语言的演化是渐进的,大多数语言追根溯源是汇编语言的升级,而作为与机器语言一一对应的汇编语言自然是命令式的,因而这种范式最为传统和普及。”

不料问号竟穷追不舍:“为什么机器语言就一定得是命令式呢?”

“我很欣赏你这种打破砂锅问到底的精神,不过你可以问到底,我却不敢保证能答到底哦。”冒号有些逗趣地说。

问号略带腼腆地笑了。

“从理论上而言,完全可以有非命令式的机器语言存在,前提是计算机采用了特殊的硬件实现,比如非冯·诺伊曼结构的数据流机(dataflow machine)和归约机(reduction machine)。但这类计算机并未流行于市,相应的机器语言自然罕见了[1]。”冒号还是给出了理由。

冒号课堂§2.1:命令范式(2)

时间:2011-06-25 BlogJava xyz98

引号问:“命令式编程与人们常说的过程式编程是一回事吗?”

“严格说来,过程式编程(procedural programming)是指引入了过程(procedure)、函数(function)或子程序(subroutine/subprogram)的命令式编程。但由于现代的命令式语言均具备此特征,故二者往往不加区分。”冒号回应道。

句号认为:“由于常用的语言基本上都是命令式的,其思想也与计算机的运行机制相符,一切对我们来说,似乎都是自然而然的事。”

“单纯的命令式思想的确很朴素,毋庸赘述。” 冒号承认,“但有必要提一下结构化编程(structured programming或简称SP),它是在过程式编程的基础上发展起来的。其本质是一种编程原则,提倡代码应具有清晰的逻辑结构,以保证程序易于读写、测试、维护和优化。Pascal正是遵循结构化编程原则而设计的一种教学语言。为直观起见,我们用图来表现程序的结构化特征——”

冒号课堂§2.1:命令范式 - 编程入门网

“这是一个流程图(flowchart),或称程序框图,它描述了一个简单程序:用户从标准输入中键入算术表达式,程序打印出结果,如此循环往复,直到用户输入字符‘q’为止。”冒号解释道,“若以纯粹的结构化编程的标准来衡量,该流程图

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号