首先 , 有一个基础的分类:
———————————————————————————————————————————
分类1 。 看基础的理论模型。
- 基于图灵机
- C/C++ Java Python Perl Go Rust
- 表达式+ 语句
- 还是lamda 演算 –函数式编程
- Lisp、Scheme、Haskell ,Erlang
- 不支持语句 , 只有表达式。
———————————————————————————————————————————
分类2 , 看是否需要特定的解释器来支持运行。
- 编译型
- C/C++ Rust Go
- 解释性
- Python Perl Erlang Lua
———————————————————————————————————————————
然后看语言细节
语言基本元素 1 :
- 关键字/注释/操作符
- 基本变量
- 原子类型
- 强类型/弱类型
- 语言自带高级数据结构
- 数据类型推断
- 指针 & GC
- 函数
- 是否支持闭包
- 单一/多返回值
PO 基本流程
- if else
- while 循环
- 是否支持switch / for in
——————————————————————————————————————————
面对对象
- 是否有统一父类
- 是否基于matetable
- 是否支持继承 / 多重继承
其他理念
- 是否函数式编程
- 是否支持宏
- 是否支持模板
- 是否支持接口
- 是否有模块/包的概念
- 是否有额外的属性配置
- 是否有并发的支持 / 分布式编程
———————————————————————————————————
其他
- 自带项目管理/单元测试
- 三方库管理
- 对C语言的互调方式
- 新语言特性
- 特有平台支持