编程范式 | 青训营笔记

74 阅读2分钟

编程范式

当前前端背景

1.前端的主要编程语言为JavaScript。 2.JavaScript做为一种融合了多种编程范式的语言,灵活性非常高。 3.前端开发人员需要根据场景在不同编程范式间自如切换。 4.进一步需要创造领域特定语言抽象业务问题。

编程语言的发展

由机器语言到汇编语言再到高级语言

C语言

C: “中级语言” 过程式语言代表• 可对位,字节,地址直接操作• 代码和数据分离倡导结构化编程• 功能齐全:数据类型和控制逻辑多样化• 可移植能力强

C++语言

C++: 面向对象语言代表 C with Classes 继承 权限控制 虚函数 多态

Lisp语言

Lisp: 函数式语言代表 与机器无关 列表:代码即数据 闭包

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)

面向对象问题

面向对象编程语言的问题在于,它总是附带着所有 它需要的隐含环境。你想要一个香蕉,但得到的却 是一个大猩猩拿着香蕉,而且还有整个丛林。 Joe Armstrong(Erlang创始人) ###函数式编程和响应式编程 领域特定语言 Domain

specific language (DSL): 应用于特定领域的语言 • HTML • SQL


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


Parser_ 语法规则 上下文无关语法规则 推导式: 表示 非终 结符 到( 非终 结符 或终 结符)的关 系。 终结符: 构 成句子 的 实际 内容 。 可以 简 单理 解为词 法分 析中 的 token 。 非终结符: 符 号或变量 的 有限集 合 。它们表示在句子中 不同类型的 短 语 或子句。