编程范式

您所在的位置:网站首页 命令式编程与函数式编程 编程范式

编程范式

2023-05-13 00:47| 来源: 网络整理| 查看: 265

JavaScript 基于原型和头等函数的多范式语言 过程式 面向对象 函数式 响应式*

编程范式

程序语言具体特性

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

编程范式

命令式 面向过程 面向对象 声明式 函数式 响应式

过程式编程

自顶向下

程序可细分为模块,模块又可细分为变量和函数。变量用具体数据结构来存储,而函数细化为函数和语句。

结构化编程

即顺序结构,选择结构,以及循环结构。

缺点:

数据与算法关联弱 不利于修改和扩充 不利于代码重用 面向对象编程 封装 关联数据和算法 继承 无需重写的情况下进行功能扩充 多态 不同的结构可以进行接口共享、进而达到函数复用 依赖注入* 去除代码耦合 五大原则 单一职责原则SRP(Single Responsibility Principle) 开放封闭原则OCP(Open-Close Principle) 里式替换原则LSP(the Liskov Substitution Principle LSP) 依赖倒置原则DIP(the Dependency Inversion Principle DIP) 接口分离原则ISP(the Interface Segregation Principle ISP) 同样也有缺点:

编程过程类似打补丁,并且仅需简单功能也需要移植整个类。

函数式编程 Fitst Class Function

聚合转发

Pure Function 优势 可缓存 可移植 可推测 可推理 可并行 Currying Composition Functor

可以当作容器的类型,类型支持对容器内元素进行操作,常见的functor : Array(Iterable).map, Promise.then

Monad

可以去除嵌套容器的容器类型,常见 monad : Array.flatMap Promise.then

Applicative

直接对两个容器操作

响应式编程 异步/离散的函数式编程 数据流 操作符 过滤 合并 转化 高阶 Observable 观察者模式 迭代器模式 Promise / EventTarget 超集 操作符

响应式编程的“compose"

合并 过滤 转化 异常处理 多播

领域特定语言

Domain-specific language (DSL) : 应用于特定淋浴的语言

HTML

SQL

语言运行过程

lexer SQL Token分类 注释 关键字 操作符 空格 字符串 变量

推导式:表示非终结符到(非终结符或终结符)的关系。终结符:构成句子的实际内容。可以简单理解为词法分析中的token。

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

Parser_LL & LR

LL:从左到右检查,从左到右构建语法树

LR:从左到右检查,从右到左构建语法树

总结

今天学习了编程范式中的基本问题,内容较多,为日常编程中的低层原理以及编程规范和编程方法,对理解深层编程语法有很大帮助,需要多多记忆。



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3