编程范式 | 青训营笔记

82 阅读3分钟

课程背景

1、前端主要编程语言:Javascript 2、Javascript多编程范式语言,灵活性高 3、前端开发人员需要在不同编程范式之间切换 4、进一步需要创造领域内特定语言抽象业务问题

人写的编程语言,为了方便机器解读,一个语言需要介质 高级语言 中级语言 汇编语言 机器语言 从上到下,依次进行传递编译

中级语言 C——过程式语言代表:

  1. 可对位,字节,地址直接操作
  2. 代码和数据分离倡导结构化编程
  3. 功能齐全:数据类型和控制逻辑多样化

高级语言 C++,面向对象 Lisp:代码即数据,函数式

  1. 与机器无关
  2. 列表:代码即数据
  3. 闭包

JavaScript:面向对象,基于原型和头等函数的多范式语言

  1. 过程式
  2. 面向对象
  3. 函数式
  4. 响应式

编程范式

编程范式是指计算机编程语言所采用的基本编程模式或思想,决定了程序设计的结构和风格。在软件开发中,不同的编程范式可以用来解决不同的问题,也可以提升代码的可读性、可扩展性和可维护性。

常见的编程范式主要有四种:过程式、面向对象、函数式编程和响应式编程。本文将对这四种编程范式进行详细介绍和比较分析。

  • 编程范式

    • 命令式

      • 面向过程
      • 面向对象
    • 声明式

      • 函数式
      • 响应式

    程序语言特性

    是否允许副作用、操作的执行顺序、代码组织、状态管理、语法和词法

    面向过程问题

    数据与算法关联弱、不利于修改和扩充、不利于代码重用

    面向对象编程

    封装、继承、多态(不同的结构可以进行接口共享,进而达到函数复用)、依赖注入

    面向对象编程的五大原则:

    单一职责

    开放封闭

    里氏替换

    依赖倒置

    函数式编程

    函数是“第一等公民”;纯函数/无副作用;高阶函数/闭包

    Pure Function:优势:可缓存、可移植、可测试、可推理、可并行

    Functor:可以当做容器的类型,类型支持对容器内元素进行操作

    Monad:可以去除嵌套容器类型

    Applicative:直接对两个容器直接操作

    响应式编程

    异步/离散的函数式编程:数据流、操作符(过滤、合并、转化、高阶)

    Observable:观察者模式、迭代器模式、Promise/EventTarget超集

    Parser:推导式:表示非终止符到(非终结符或终结符)的关系

    终结符:构成句子的实际内容。可以简单理解为语法分析中的token

    非终结符:符号或变量的有效集合。他们表示在句子中不同类型的短语或子句

    三、领域特定语言(创造DSL)

    用通用语言来实现,但通用语言不能实现特定语言 语言运行、语法规则, parser-LL:从左到右检查,从左到右,构建语法树 parser-LR:从右到左构建语法树 tools、visitor

总结:

这节课介绍了编程范式,详解了常见编程语言的类型及其特性,也详细说明了编程范式的作用和意义。

屏幕截图 2023-04-16 132723.png