编程范式:声明式(Declarative)编程、命令式(Imperative)编程和函数式(Functional)编程

1.声明式编程

声明式编程的主要思想是告诉计算机应该做什么,但不指定具体执行的步骤

SQL 语言就是最明显的一种声明式编程的例子,例如:

SELECT * FROM collection WHERE num > 5

除了 SQL语言,网页编程中使用到的 HTML 和 CSS 也都属于声明式编程

2.命令式编程

命令式编程的主要思想是关注计算机执行的步骤,即一步一步告诉计算机先做什么再做什么

比如:如果我们想在一个数值集合 collection(变量名) 中筛选大于 5 的数字,你需要这样告诉计算机:

  • 第一步,创建一个存储结果的集合变量 results
  • 第二步,遍历这个数值集合 collection
  • 第三步,一个一个地判断每个数字是不是大于 5,如果是,就将这个数字添加到结果集合变量 results 中。

代码实现如下:

List<int> results = new List<int>();
foreach(var num in collection) {
    if (num > 5) {
        results.Add(num);
    }
}

很明显,这个样子的代码是很常见的一种,不管你用的是 C、C++,还是 C#、Java、PHP、Python、Ruby、JavaScript 语言等等,都是命令式编程。

其中命令式编程,根据编写风格还可以分为面向过程编程和面向对象编程。

2.1面向过程编程

面向过程就是分析出解决问题所需要的步骤,然后用函数把这些步骤一步一步地实现,使用的时候一个一个依次调用就可以了。

典型的语言:C

2.2面向对象编程

面向对象是把构成问题的事物分解成各个对象,建立对象的目的不是为了完成一个步骤,而是为了描述某个事物在整个解决问题的步骤中的行为。

典型的语言:C++、C#、Java、PHP、Python、Ruby、JavaScript 语言都是面向对象编程,注意,JavaScript 语言的面向对象与传统的面向对象不太一样,不过 ECMA 官方也在尽快弥补这一点。

3.函数式编程

函数式编程和声明式编程是有所关联的,因为它们思想是一致的:即只关注做什么而不是怎么做。但函数式编程不仅仅局限于声明式编程。

函数式编程最重要的特点是“函数是头等公民”,即函数可以出现在任何地方,比如我们可以把一个函数作为实参传递给另一个函数的形参,不仅如此,我们还可以将函数作为返回值。

典型的语言:Haskell

总结

现代的语言很少是一种编程范式,大部分语言都是好几种编程范式混合而成,从而使语言本身更加易用。

原创文章,作者:huoxiaoqiang,如若转载,请注明出处:https://www.huoxiaoqiang.com/experience/osexp/3631.html

(1)
huoxiaoqiang的头像huoxiaoqiang
上一篇 2020年2月19日
下一篇 2020年3月2日

相关推荐

  • 计算机字节和位的区别

    计算机内存储和处理信息的最小单位是bit(位或比特),它是BInary digiT(二进制数)的缩写,一个位的值可以是0或1,计算机通常不会每次只对一个二进制位进行操作,它们会对一组二进制位进行操作,8个二进制位为一个字节(Byte),现在的微处理器都是面向字节的,所以说计算机存储信息的最小单位是字节也是对的,它的二进…

    操作系统经验 2021年3月1日
    01.3K0
  • shell脚本的运行方式

    1.直接方式(新进程) cd命令切换到script.sh脚本所在的目录。 脚本文件第一行的#!/bin/sh或#!/bin/bash一定要写对,好让系统查找到正确的shell脚本解释器。 2.sh方式(新进程) cd命令切换到script.sh脚本所在的目录。 不需要在脚本文件的第一行指定#!/bin/sh或#!/bi…

    操作系统经验 2023年1月23日
    02230
  • Google Chrome浏览器显示“由贵单位管理”的解决方案

    今天安装Google Chrome浏览器的时候发现,在浏览器的如下图所示的菜单里面居然显示我的浏览器“由贵单位管理”。 网上的网友有说重新安装的,有说弄什么注册表的,重新安装未必奏效,毕竟可能你卸载了Google Chrome浏览器,可是那个配置文件还在,至于弄注册表的话,个人认为是有风险的,那有没有简单有效的解决方案…

    操作系统经验 2020年1月31日
    04.1K0

发表回复

登录后才能评论