编程语言与编程范式

XiLaiTL大约 2 分钟

编程语言与编程范式

以下都是收集的概念,用来防止自己遗忘概念

声明式 vs 命令式

声明式编程 (Declarative)

特点

  • 关注"做什么"(What to do)
  • 描述目标而非实现过程
  • 通常更简洁、抽象
  • 隐藏了实现细节

具体的例子:SQL,描述了想要什么数据,但是没有提供怎么获得这些数据的方法。

命令式编程 (Imperative)

特点

  • 关注"如何做"(How to do)
  • 详细描述实现目标的步骤
  • 使用语句改变程序状态
  • 包含明确的控制流(循环、条件等)

具体的例子:C,一步一步说明如何获得数据存储到哪里

面向对象 vs 面向过程

面向过程编程 (Procedural Programming)

核心思想

  • 以"过程"(函数/子程序)为中心组织代码
  • 关注解决问题的步骤和算法
  • 数据与操作数据的函数分离

特点

  1. 自顶向下逐步分解问题
  2. 程序由一系列函数调用组成
  3. 数据通常作为参数传递给函数
  4. 强调算法和逻辑流程

面向对象编程 (Object-Oriented Programming, OOP)

核心思想

  • 以"对象"为中心组织代码
  • 对象包含数据(属性)和操作数据的方法
  • 关注对象之间的交互

实现 OOP 的流派:

  • Java: 类继承为核心点来复用 1. 封装:隐藏内部实现,暴露接口 2. 继承:子类继承父类特性 3. 多态:同一接口不同实现 4. 抽象:提取共性形成抽象类/接口
  • JavaScript:基于原型的面向对象
    • 通过原型链来复用操作
  • Rust:基于trait的对象系统,通过 impl trait for struct组合来复用接口
  • Erlang:通过进程和消息传递实现对象,基于行为模式

函数式

function first class “函数”作为一等公民

特点

  • 强调函数的使用,函数也是元素,可以进行传递、返回或赋值给变量。
  • 函数类型,高阶函数
  • 避免状态变化和副作用,通常使用不可变数据结构。

函数式一般也是声明式

响应式

响应式编程是一种面向数据流和变化传播的编程范式,关注数据变化和事件流,自动传播变化。

核心概念

  1. 数据流:将一切视为随时间变化的数据流
  2. 观察者模式:数据变化时自动通知依赖项
  3. 函数式组合:使用高阶函数组合和转换流

特点

  • 声明式处理异步数据流
  • 自动依赖跟踪
  • 高效的变化检测和传播
  • 常用于处理用户交互、事件、异步操作等
上次编辑于:
贡献者: XiLaiTL