《架构整洁之道》之编程范式总览

一、结构化编程

结构化编程是第一个普遍被采用的编程范式(但是不是第一个被提出的),由Edsger Wybe Dijkstra于1968年最先提出。与此同时,Dijkstra还论证了使用goto这样的无限制跳转语句将会损害程序的整体结构。

结构化编程范式归纳:
结构化编程对程序控制权的直接转移进行了限制和规范。

二、面向对象编程

编程领域中第二个被广泛采用的编程范式-面向对象编程。
事实上,这个编程范式的提出比结构化编程早两年,是在1966年由Ole Johan Dahl和Kriste Nygaard在论文中总结归纳出来的。这两个程序员注意到在ALGOL语言中,函数调用堆栈可以被挪到堆内存区域里,这样函数定义的本地变量就可以在函数返回之后继续存在。这个函数就成为了一个类的构造函数,而它所定义的本地变量就是类的成员变量,构造函数定义的嵌套函数就成为了成员方法。这样一来,我们就可以利用多态来限制用户对函数指针的使用。

面向对象编程归纳:
面向对象编程对程序控制权的间接进行了限制和规范。

三、函数式编程

事实上,函数式编程概念是基于与阿兰.图灵同时代的数学家Alonzo Church在1936年发明的λ演算的直接衍生物。1958年John Mccarthy利用其作为基础发明了LISP语言。众所周知,λ演算法的一个核心思想是不可变性-某个符号所对应的值是永远不变,所以从理论上来说,函数式编程语言中应该是没有赋值语句的。大部分函数式编程语言只允许在非常严格的限制条件下,才可以更改某个变量的值。

函数式编程范式归纳:
函数式编程对程序中的赋值进行了限制和规范。

文章目录
  1. 一、结构化编程
  2. 二、面向对象编程
  3. 三、函数式编程