命令式编程(英语:Imperative programming),是一种描述计算机所需作出的行为的编程典范。几乎所有计算机的硬件工作都是命令式的;几乎所有计算机的硬件都是设计来运行机器码,使用命令式的风格来写的。较高阶的命令式编程语言使用变量和更复杂的语句,但仍依从相同的典范。虽非计算机程序,但与命令式编程有相似的风格:每步都是指令,有形的世界控制情况。因为命令式编程的基础观念,不但概念上比较熟悉,而且较容易具体表现于硬件,所以大部分的编程语言都是命令式的。
语句大部分的高级语言都支持四种基本的语句:
运算语句一般来说都表现了在存储器内的数据进行运算的行为,然后将结果存入存储器中以便日后使用。高阶命令式编程语言更能处理复杂的表达式,可能会产生四则运算和函数计算的结合。
循环语句容许一些语句反复运行数次。循环可依据一个默认的数目来决定运行这些语句的次数;或反复运行它们,直至某些条件改变。
条件分支语句容许仅当某些条件成立时才运行某个区块。否则,这个区块中的语句会略去,然后按区块后的语句继续运行。
无条件分支语句容许运行顺序转移到程序的其他部分之中。包括跳跃(在很多语言中称为Goto)、副程序和Procedure等。
循环、条件分支和无条件分支都是控制流程。
早期的命令式编程语言都是计算机本身的机械语言。在这些语言中,指示非常简单,令硬件的运行更容易,却阻碍了复杂程序的设计。1954年开始开发的FORTRAN,是首个在复杂程序的设计中除掉机器码的编程语言。它是编译型的编程语言,容许命名变量、复杂的表达式、副程序和其他功能,这些功能现在在命令式语言中都非常普遍。后来的二十年中,可以看到大量的其他高阶命令式编程语言出现。在1980年后,面向对象编程有迅速的发展;面向对象编程语言均有着命令式的风格,但增添了支持对象的功能。
命令式和程序式编程程序编程是一种命令式编程,其中程序是从一个或多个过程(也称为子程序或函数)构建的。这些术语通常用作同义词,但程序的使用会对命令式程序的出现以及它们的构造方式产生巨大影响。重度过程编程是一种结构化编程形式,其中状态更改本地化为过程或仅限于显式参数和从过程返回。从20世纪60年代开始,结构化编程和模块化编程一般被推广为提高命令性程序的可维护性和整体质量的技术。面向对象编程背后的概念试图扩展这种方法。
程序编程可以被视为朝着声明性编程迈出的一步。程序员通常可以简单地通过查看过程(和相关注释)的名称,参数和返回类型来判断特定过程应该做什么,而不必查看它如何实现其结果的细节。同时,完整的程序仍然是必不可少的,因为它在很大程度上修复了要执行的语句及其执行顺序。
命令式和面向对象语言的历史最早的命令式语言是原始计算机的机器语言。在这些语言中,指令非常简单,这使得硬件实现更容易,但阻碍了复杂程序的创建。 FORTRAN由John Backus在1954年开始的国际商业机器公司(IBM)开发,是第一种在创建复杂程序时消除机器代码所带来障碍的主要编程语言。 FORTRAN是一种编译语言,允许命名变量,复杂表达式,子程序以及命令式语言中常见的许多其他功能。接下来的20年里,许多其他主要的高级命令式编程语言得到了发展。在20世纪50年代末和60年代,ALGOL的开发是为了使数学算法更容易表达,甚至可以作为某些计算机的操作系统目标语言。 MUMPS(1966)将命令式范式带到逻辑极端,完全没有任何陈述,完全依赖于命令,甚至使IF和ELSE命令彼此独立,只能通过名为$的内部变量连接。测试。 COBOL(1960)和BASIC(1964)都试图使编程语法看起来更像英语。在20世纪70年代,Pascal由Niklaus Wirth开发,C由Dennis Ritchie在贝尔实验室工作时创建。 Wirth继续设计Modula-2和Oberon。为了满足美国国防部的需求,Jean Ichbiah和霍尼韦尔的一个团队在经历了为期4年的项目定义语言要求后,于1978年开始设计Ada。该规范于1983年首次发布,并于1995年,2005年和2012年进行了修订1。
20世纪80年代,对面向对象编程的兴趣迅速增长。这些语言在风格上势在必行,但增加了支持对象的功能。 20世纪的最后二十年看到了许多这样的语言的发展。 Smalltalk-80最初由Alan Kay于1969年构思,于1980年由施乐帕洛阿尔托研究中心(PARC)发布。借鉴另一种面向对象语言中的概念--Simula(被认为是世界上第一个面向对象的编程语言,于20世纪60年代开发)-Bjarne Stroustrup设计了C ++,一种基于C语言的面向对象语言.C ++的设计始于1979年第一次实施于1983年完成。在20世纪80年代末和90年代,基于面向对象概念的着名命令式语言是由Larry Wall于1987年发布的Perl; Python,由Guido van Rossum于1990年发布; Visual Basic和Visual C ++(包括Microsoft基础类库(MFC)2.0),分别于1991年和1993年由Microsoft发布; PHP,由Rasmus Lerdorf于1994年发布; Java由Sun Microsystems于1995年发布,JavaScript由Brendan Eich(Netscape)发布,Ruby由Yukihiro“Matz”Matsumoto于1995年发布。微软的.NET Framework(2002)在其核心是必不可少的,其主要内容也是如此目标语言,VB.NET和在其上运行的C#;但微软的F#,一种功能语言,也在它上面运行。
本词条内容贡献者为:
李宗秀 - 副教授 - 黑龙江财经学院