You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

编译型/解释型/脚本型与OOP/过程式/函数式等编程语言分类的关系

你看到的这两类术语属于完全独立的编程语言分类维度,彼此之间没有强制绑定关系,也不处于同一分类层级,所以找不到统一的层级图很正常。

第一类:执行模式维度(编译型/解释型/脚本型)

这个分类是按照代码运行前的处理逻辑、执行方式划分的,和你写代码的语法、逻辑组织思路无关:

  • 编译型:代码运行前需要通过编译器完整转换为对应平台的机器码,生成可执行文件后再运行,代表语言有C、C++、Go、Rust
  • 解释型:代码不需要提前全量编译为机器码,运行时由解释器逐行/逐块转换执行,代表语言有Python、Ruby
  • 脚本型:属于解释型的一个非正式子类,一般指主打轻量场景、不需要提前编译打包、直接用源码就能运行的解释型语言,这个分类没有严格的判定标准,代表语言有JavaScript、Shell、Lua

常见误区:很多语言现在是混合执行模式,比如Java会先编译为字节码,运行时再由JVM解释+JIT编译执行,不会严格属于某一类。

第二类:编程范式维度(面向对象/过程式/函数式)

这个分类是按照代码的组织方式、抽象逻辑的思路划分的,和语言的执行模式无关:

  • 过程式:把逻辑拆分为一个个可复用的过程(函数),按照执行顺序串联调用完成目标,代表范式语言有C、Pascal
  • 面向对象(OOP):把逻辑和对应的数据封装为对象,通过对象的交互、继承、多态等特性实现逻辑,代表范式语言有Smalltalk、Java
  • 函数式:把计算视为数学函数的求值,避免可变状态、副作用,强调函数的一等公民地位,代表范式语言有Haskell、Clojure

注意:现在绝大多数现代语言都是多范式语言,同时支持多种编程范式,比如Python/Java/JS都同时支持过程式、面向对象、函数式写法,不会严格属于某一种范式。

两类分类的关联说明

两者之间没有任何绑定规则,同一执行模式的语言可以支持完全不同的范式,同一范式的语言也可以用完全不同的执行模式:

  • 编译型语言可以支持任意范式:C(编译+过程式)、C++(编译+多范式)、Haskell(编译+函数式)
  • 解释/脚本型语言也可以支持任意范式:Shell(脚本+过程式)、Python(解释+多范式)、ClojureScript(脚本+函数式)
  • 没有"编译型就只能面向对象"、"脚本型就只能写过程式"这类强制规则,你看到的常见搭配只是社区选型偏好,不是分类要求。

内容的提问来源于stack exchange,提问作者Lee Dan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.24 04:06:04