今天学习的是编程范式,以下是今天的课程结构。
- 编程语言
- 编程范式
- 领域特定语言
编程语言
编程语言的发展历史:
机器语言——汇编语言——高级语言
编译器可以将高级语言转变为汇编语言。
以下介绍几种常见的高级语言。
C/C++
C:“中级语言” 过程式语言代表
- 可对位、字节、地址直接操作
- 代码和数据分离倡导结构化编程
- 功能齐全,数据类型和控制逻辑多样化
- 可移植能力强
C 语言是面向过程的语言。
C++:面向对象语言代表
- C with Classes
- 继承
- 权限控制
- 虚函数
- 多态
Lisp:函数式语言代表
- 与机器无关
- 列表:代码即数据
- 闭包
基于原型和头等函数的多范式语言
- 过程式
- 面向对象
- 函数式
- 响应式
编程范式
编程范式是一种根据编程语言的特性来分类编程语言的方法。不同的编程范式有不同的结构,特征和观点,关于如何解决常见的编程问题。
过程式编程
- 自顶向下
- 结构化编程
面向过程的编程有什么缺点?
答:
- 数据与算法关联弱
- 不利于修改和扩充
- 不利于代码重用
面向对象编程
面向对象编程的特点:
- 封装
- 继承
- 多态
- 依赖注入
面向对象编程_封装
- 关联数据和算法
面向对象编程_继承
- 无需重写的情况下进行功能扩充
面向对象编程_多态
- 不同的结构可以进行接口共享,进而达到函数复用
面向对象编程_依赖注入
- 去除代码耦合
面向对象编程_五大原则
- 单一指责原则 SRP
- 开放封闭原则 OCP
- 里氏替换原则 LSP
- 依赖倒置原则 DIP
- 接口分离原则 ISP
面向对象的编程有什么缺点?
答:
函数式编程
- 函数是“第一等公民”
- 纯函数/无副作用
- 高阶函数/闭包
响应式编程
- 异步/离散的函数式编程
- 数据流
- 操作符
- 过滤
- 合并
- 转化
- 高阶
领域特定语言
- Domain-specific language(DSL):应用于特定领域的语言
- HTML
- SQL