弱类型、强类型、动态类型、静态类型
Program Errors
- trapped errors。导致程序终止执行,如除 0、Java 中数组越界访问
- untrapped errors。 出错后继续执行,但可能出现任意行为。如 C 里的缓冲区溢出、Jump 到错误地址
Forbidden Behaviours
语言设计时,可以定义一组 forbidden behaviors. 它必须包括所有 untrapped errors, 但可能包含 trapped errors.
// 强弱:语言设计定义的错误不允许通过编译
编译时排除红色的程序,strongly typed
否则,weakly typed
否则,weakly typed
静动:类型是否能变化