课程背景
1、前端主要编程语言:Javascript 2、Javascript多编程范式语言,灵活性高 3、前端开发人员需要在不同编程范式之间切换 4、进一步需要创造领域内特定语言抽象业务问题
人写的编程语言,为了方便机器解读,一个语言需要介质 高级语言 中级语言 汇编语言 机器语言 从上到下,依次进行传递编译
中级语言 C——过程式语言代表:
- 可对位,字节,地址直接操作
- 代码和数据分离倡导结构化编程
- 功能齐全:数据类型和控制逻辑多样化
高级语言 C++,面向对象 Lisp:代码即数据,函数式
- 与机器无关
- 列表:代码即数据
- 闭包
JavaScript:面向对象,基于原型和头等函数的多范式语言
- 过程式
- 面向对象
- 函数式
- 响应式
编程范式
编程范式是指计算机编程语言所采用的基本编程模式或思想,决定了程序设计的结构和风格。在软件开发中,不同的编程范式可以用来解决不同的问题,也可以提升代码的可读性、可扩展性和可维护性。
常见的编程范式主要有四种:过程式、面向对象、函数式编程和响应式编程。本文将对这四种编程范式进行详细介绍和比较分析。
-
编程范式
-
命令式
- 面向过程
- 面向对象
-
声明式
- 函数式
- 响应式
程序语言特性
是否允许副作用、操作的执行顺序、代码组织、状态管理、语法和词法
面向过程问题
数据与算法关联弱、不利于修改和扩充、不利于代码重用
面向对象编程
封装、继承、多态(不同的结构可以进行接口共享,进而达到函数复用)、依赖注入
面向对象编程的五大原则:
单一职责
开放封闭
里氏替换
依赖倒置
函数式编程
函数是“第一等公民”;纯函数/无副作用;高阶函数/闭包
Pure Function:优势:可缓存、可移植、可测试、可推理、可并行
Functor:可以当做容器的类型,类型支持对容器内元素进行操作
Monad:可以去除嵌套容器类型
Applicative:直接对两个容器直接操作
响应式编程
异步/离散的函数式编程:数据流、操作符(过滤、合并、转化、高阶)
Observable:观察者模式、迭代器模式、Promise/EventTarget超集
Parser:推导式:表示非终止符到(非终结符或终结符)的关系
终结符:构成句子的实际内容。可以简单理解为语法分析中的token
非终结符:符号或变量的有效集合。他们表示在句子中不同类型的短语或子句
三、领域特定语言(创造DSL)
用通用语言来实现,但通用语言不能实现特定语言 语言运行、语法规则, parser-LL:从左到右检查,从左到右,构建语法树 parser-LR:从右到左构建语法树 tools、visitor
-
总结:
这节课介绍了编程范式,详解了常见编程语言的类型及其特性,也详细说明了编程范式的作用和意义。