十毛 (@Ningx) 在 一点关于主流编程语言分类的思考 中发帖
按编译型与解释型分
编译型:
1.运行前AOT编译为机器码 运行时直接执行的 比如C/C++,Rust,Go
2.运行前编译为字节码 运行时通过JIT 编译为机器码执行 比如C#
解释型:
运行前编译为字节码 运行时通过解释器解释执行 不编译为机器码 比如Python,Lua
既是编译型又是解释型:
同时有两种特征的(运行前编译为字节码 运行时通过JIT 编译为机器码执行+运行前编译为字节码 运行时通过解释器解释执行 不编译为机器码) 比如Java,JavaScript,TypeScript
按类型检查的时机分类
动态类型语言:
在运行时才会进行类型检查 这种语言的类型错误往往会导致运行时错误 比如JavaScript,Python,PHP,Lua
静态类型语言:
编译阶段就能确定每个变量的类型 这种语言的类型错误往往会导致语法错误 比如
C/C++,Rust,G...