编程范式 | 青训营笔记

62 阅读2分钟

编程范式

课程介绍

课程背景

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

课程收益

  • 了解不同编程范式的起源和适用场景
  • 掌握JavaScript在不同的编程范式特别是函数式编程范式的使用
  • 掌握创建领域特定语言的相关工具和模式

编程语言

高级语言

首先是由高级语言转换为汇编语言,然后是将汇编语言转换为能够有机器识别的机器语言。

image.png

常见的编程语言有很多例如C/C++语言

C语言是“中级语言”过程式语言代表

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

C++:面向对象语言代表

  1. C with Classes
  2. 继承
  3. 权限控制
  4. 虚函数
  5. 多态

Lisp:函数式语言代表

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

总体是分为了机器语言、汇编语言、中级语言和高级语言。中级语言是面向过程代表,高级语言是面向对象代表、函数式代表和多范式代表。 image.png

编程范式

程序语言特性:

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

编程范式分为了命令式和声明式。其中命令式面向过程和面向对象,声明式是函数式和响应式。

过程式编程

自顶向下:首先是程序,然后是模块下的变量和数据结构,接下来是函数,分为了函数和语句

结构化编程

大致分为了顺序结构、选择结构和循环结构,如图所示。

image.png

面向对象编程五大原则

  1. 单一职责原则SRP
  2. 开放封闭原则OCP
  3. 里式替换原则LSP
  4. 依赖倒置原则DIP
  5. 接口分离原则ISP

总的来说编程范式分为了过程式、面向对象、函数式编程、响应式编程,具体如图所示 image.png

领域特定语言

parser语法规则

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