语义分析是
编译过程的一个逻辑阶段, 语义分析的任务是对结构上正确的
源程序进行上下文有关性质的审查,进行类型审查。语义分析是审查
源程序有无语义错误,为
代码生成阶段收集类型信息。比如语义分析的一个工作是进行类型审查,审查每个算符是否具有语言规范允许的运算对象,当不符合语言规范时,
编译程序应报告错误。如有的
编译程序要对实数用作
数组下标的情况报告错误。又比如某些程序规定运算对象可被强制,那么当二目运算施于一
整型和一实型
对象时,编译程序应将整型转换为实型而不能认为是
源程序的错误。
按照语法分析器识别的语法范畴进行语义检查和处理,产生相应的中间代码或目标代码.
1. 方便生成目标代码;
2. 便于优化;
3. 便于移植。
源程序的结构是正确的. 语义分析将审查类型并报告错误:不能在
表达式中使用一个
数组变量,
赋值语句的右端和左端的
类型不匹配.