Skip to content

Universal Program Language

通用编程语言对比

特点\语言CRustJavaScriptTypeScript
overview静态、强类型、编译静态、强类型、编译,内存安全动态、弱类型、解释动态、强类型、编译+解释
scene系统、嵌入式领域、信息类竞赛系统、嵌入式领域、前端工程web,应用开发web,类库开发
public1972,丹尼斯·里奇,贝尔实验室2010,Mozilla 研究院1995,Brendan Eich,Netscape2012,微软
grammer
feature
paradigm函数式函数式、面向对象函数式、面向对象同左
std-lib?内置全局对象同左
compilergcc(linux\windows)、clang(macos)rustcjittsc
runtime--v8(chrome)-

解释型与编译型

主要在代码在执行前的处理方式

  • 编译型语言
    • 预处理:处理源代码中的预处理指令。
    • 编译:将源代码转换成目标代码,通常是机器码。
    • 汇编:将汇编语言代码转换成机器码。
    • 链接:将多个目标文件或库文件链接在一起,生成可执行文件
  • 解释型语言
    • 运行时解释器逐行解释执行
  • 区别比较
    • 执行速度:运行时编译型语言无须转换源代码为机器码,速度更快。
    • 跨平台性:编译型语言需要为不同的平台编译不同的可执行文件,而解释型语言只要解释器一致就行。后者跨平台性更好。
    • 开发和调试:解释型语言因为无须等待编译,更容易调试。
    • 内存管理:解释型语言通常依赖于垃圾回收机制来管理内存,编译型各有不同。

静态和动态

所谓动态:

  • 编译时不确定数据类型
  • 运行时确定数据类型
  • 运行时变量可以修改为任意类型的值

TODO

强类型和弱类型

所谓弱类型:

  • 弱类型语言,与是否具有类型系统无关
  • 表达式运算中,不强制操作数为相同的类型
  • 若操作数为不同类型,则自动进行转化
  • 若无法转化,则在运行时报错

TODO

参考

Released under the MIT License.