编程范式 | 青训营笔记

79 阅读4分钟

编程范式

编程语言

机器语言

第一代计算机使用的是机器语言,这种语言是二进制的,非常难以阅读和编写

汇编语言

一种更高级别的机器语言,使用助记符来代替二进制代码,更容易编写和阅读

中级语言

介于机器语言和高级语言之间的一种语言。通常是一种可移植的高级语言,但在执行时被转换成机器语言。 包括C语言和C++语言

C语言:过程式语言代表

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

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

  1. C with Classes
    • 基本语法与C语言相同,但增加了类、继承、多态等面向对象的特点
  2. 继承
  3. 权限控制
    • public、protected和private关键字用来控制成员变量和成员函数的访问权限
  4. 虚函数
    • 虚函数可以实现多态,即在运行时根据对象的实际类型来调用相应的函数
  5. 多态

Lisp:函数式语言代表

  • 与机器无关
  • 列表:代码即数据
  • 闭包

高级语言

使用自然语言的形式来描述问题,通常具有较高的可读性和可维护性,更容易地编写和修改代码 例如Java、Python和JavaScript

JavaScript:基于原型和头等函数的多范式语言

  • 过程式:可在Web浏览器中嵌入HTML页面
  • 面向对象:支持类、对象、继承、封装等面向对象的特性,JS中的对象是动态的,可以随时添加或删除属性和方法
  • 函数式:它的函数可赋值给其他变量,可传参给其他函数,可作为返回值给其他函数
  • 响应式:可通过DOM操作实现页面元素的动态更新,与用户的交互效果等

编程范式

程序语言特性

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

命令式

命令式编程是一种以计算机执行的命令为中心的编程范式

面向过程

面向过程是一种以过程为中心的编程方式

  • 将问题分解为一系列步骤,通过函数的调用来实现过程的功能
  • 面向过程的代码通常是一系列的命令,描述了计算机执行的具体步骤

面向对象

面型对象是一种以对象为中心的编程方式

  • 将函数和数据封装在一起,通过对象的交互来实现程序的功能
  • 面向对象的代码通常是一系列的对象,描述了程序中的实体和它们之间的关系

优点:

  • 可读性好:数据和函数封装在一起
  • 可维护性好:代码的耦合度低,修改代码时只需要修改对象的内部实现,不会影响其他部分的代码
  • 可扩展性好:对象之间通过接口进行交互,易于对程序进行扩展

声明式

声明式编程是一种以描述问题为中心的编程范式

函数式

函数式编程是一种以函数为中心的编程方式

  • 将计算视为函数的应用,通过函数的组合来实现程序的功能
  • 函数式的代码通常是一系列的函数调用,描述了计算机的过程

响应式

响应式编程是一种以数据流为中心的编程方式

  • 将函数和数据封装在一起,通过数据的变化来触发函数的执行,实现程序的功能
  • 响应式的代码通常是一系列的数据流,描述了数据的变化和处理

结构化编程

是一种以结构为中心的编程范式,主要关注程序的可读性、可维护性、和可扩展性,通过一系列的结构化的控制流程来组织程序的逻辑 主要特点:

  1. 顺序结构:按顺序执行,从上到下依次执行每一条语句
  2. 选择结构:根据条件选择执行不同的语句,包括if、switch语句
  3. 循环结构:通过循环执行一组语句 优点:
  • 代码清晰
  • 可维护性高
  • 可扩展性强