Programming Paradigms 编程范式-笔记

本文探讨了四种编程范式:命令式、面向对象、函数式和逻辑编程。面向对象编程引入了类、对象和继承等概念,提高了代码复用和模块化。而函数式编程如Haskell中的例子,通过避免副作用提供了更简洁的表达。这些编程范式在不同的场景中各有优势,影响了程序员的思维方式和代码组织方式。
摘要由CSDN通过智能技术生成

Stephen Covey的《The 7 Habits of Highly Effective People》一书中,有一个关于paradigm shift(范式转移)的小故事:
军舰在雾天执行紧急任务,突然发现船的一侧有来自其他处的照明灯光,舰长要求对方转向,否则有两船相撞的危险。可惜对方坚持让军舰转向,互不相让。舰长甚至亮出了自己的军衔相挟“我是海军上校,这里是军舰!”。而最后的结果,却是本来态度强硬的军舰选择了转向,因为对方的答复是:“我是二等兵,这里是灯塔!”
虽然关于范式的准确定义,说法有很多,我也不打算深究并记录进笔记,但从这个小故事中可见,范式是我们思考的一种模式,正确的模式会让我们更加接近真实,更容易达到特定的目的,而错误的模式则会让我们事倍功半。
我们学习编程都是从具体的编程语言,如C,C++,java等开始的。所以一开始往往没有深入接触programming paradigms(编程范式)的概念,最多是简单地介绍一句“C是面向对象的编程语言“,再多问一句,得到的回答也只是”以后你学到C++就会发现它是面向对象的编程语言“。其实这里面有很多深刻的话题可以谈论,值得深入地考虑。譬如说,一门语言和编程范式的关系,并非是”C是面向对象的编程语言“的关系那么简单,一门编程语言和编程范式其实没有绑定或者专属的关系,一个是语法语义层面的,另外一个是运算算法层面的,一般说某种编程语言支持某种编程范式可能比较恰当,甚至有一些语言还支持混合编程范式。其实C也能支持一些面向对象的因素,只是不如其他按照OOP(Object-oriented Programming)范式开发的语言支持得完善(继承、多态、重载?),所以说”C是面向对象的编程语言“也能让人接受,而C++也能做到纯粹的面向过程,但作为C的超集,其最大的不同就是对OOP的支持,故把它称为面向对象的编程语言。


编程范式的分类也有很多种,除了上面的分类,还有结构化、非结构化等分类。我想最主要的分类还是按照model of computation(计算模型)来分,一般而言有四类范式:

  • 基于Turing Machine(图灵机)的Imperative Programming(命令编程范式);
  • 基于Turing Machine(图灵机)的Object-oriented Programming(面向对象的编程范式);
  • 基于λ-calculus(λ演算)的Functional Programming(函数编程范式);
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值