文档介绍:第五章类型检查
本章内容
静态检查中最典型的部分—类型检查:
类型系统、类型检查、多态函数、重载
忽略其它的静态检查:控制流检查、唯一性检查、关联名字检查
分析
器
类型
检查
器
中间
代码
生成
器
语法树
语法树
中间
表示
记号流
类型在程序设计语言中的作用
执行错误和安全语言
介绍一些和程序运行有联系的概念
类型在程序设计语言中的作用
执行错误和安全语言
程序运行时的执行错误分成两类
会被捕获的错误(trapped error)
类型在程序设计语言中的作用
执行错误和安全语言
程序运行时的执行错误分成两类
会被捕获的错误(trapped error)
例:非法指令错误
类型在程序设计语言中的作用
执行错误和安全语言
程序运行时的执行错误分成两类
会被捕获的错误(trapped error)
例:非法指令错误、非法内存访问
类型在程序设计语言中的作用
执行错误和安全语言
程序运行时的执行错误分成两类
会被捕获的错误(trapped error)
例:非法指令错误、非法内存访问、除数为零
类型在程序设计语言中的作用
执行错误和安全语言
程序运行时的执行错误分成两类
会被捕获的错误(trapped error)
例:非法指令错误、非法内存访问、除数为零
引起计算立即停止
类型在程序设计语言中的作用
执行错误和安全语言
程序运行时的执行错误分成两类
会被捕获的错误(trapped error)
例:非法指令错误、非法内存访问、除数为零
引起计算立即停止
不会被捕获的错误(untrapped error)
类型在程序设计语言中的作用
执行错误和安全语言
程序运行时的执行错误分成两类
会被捕获的错误(trapped error)
例:非法指令错误、非法内存访问、除数为零
引起计算立即停止
不会被捕获的错误(untrapped error)
例:下标变量的访问越过数组末端的数据
类型在程序设计语言中的作用
执行错误和安全语言
程序运行时的执行错误分成两类
会被捕获的错误(trapped error)
例:非法指令错误、非法内存访问、除数为零
引起计算立即停止
不会被捕获的错误(untrapped error)
例:下标变量的访问越过数组末端的数据
例:跳到一个错误的地址,该地址开始的内存正好代表一个指令序列