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

一、结构化编程

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

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

二、面向对象编程

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

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

三、函数式编程

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

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

posted @   挑战者V  阅读(268)  评论(0编辑  收藏  举报
编辑推荐:
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
阅读排行:
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· [AI/GPT/综述] AI Agent的设计模式综述
历史上的今天:
2018-07-04 关于checkbox自动选中
点击右上角即可分享
微信分享提示