弱类型、强类型、动态类型、静态类型

Program Errors

  • trapped errors。导致程序终止执行,如除 0、Java 中数组越界访问
  • untrapped errors。 出错后继续执行,但可能出现任意行为。如 C 里的缓冲区溢出、Jump 到错误地址

Forbidden Behaviours

语言设计时,可以定义一组 forbidden behaviors. 它必须包括所有 untrapped errors, 但可能包含 trapped errors.



// 强弱:语言设计定义的错误不允许通过编译
编译时排除红色的程序,strongly typed
否则,weakly typed

静动:类型是否能变化