编程语言 / 静态动态 · 2023年 10月 21日 0

静态语言和动态语言

47 次浏览

静态动态语言和类型是极其容易被混淆的概念,实际上不同语言设计者和使用者对语言理解不同,"静态"和"动态"的概念有很大差异。如下将按照维基百科作为标准。

静态语言和动态语言

  • 动态语言是指一类在运行时可以改变其结构的语言:例如新的函数、对象、甚至代码可以被引进,已有的函数可以被删除或是其他结构上的变化。静态语言,即不支持动态语言功能的语言。
  • 动态语言
    PHP、Python、Ruby、Shell、Batch、JavaScript 等
  • 静态语言
    C、ObjC、C++、Java、Rust 等

静态类型和动态类型

  • 静态类型:如果一个编程语言的类型检查,发生在编译期,可在不测试运行时期表达式的等价性的情况下进行。例如:
    C/ObjC/C++/Java/C#/Go/Swift/Rust/仓颉/Fortran/VB.NET
  • 动态类型:如果一个编程语言类型检查发生在运行期,支持运行时期(动态)调度已标记的资料。
    Python/JS/VB6

强类型和弱类型

  • 强类型的基本定义即为,禁止错误类型的参数继续运算。
    例如 Python/Rust 等。
  • 弱类型意指一个语言可以隐式的转换类型(或直接转型)。
    例如PHP/VBScript/Shell 等.