语义分析
语义分析阶段的任务是审查源程序有无语义错误。源程序中有些语法成分,按照语法规则去判断,它是正确的,但它不符合语义规则。比如使用了没有声明的变量;或者给一个过程名赋值;或者调用函数时参数类型不合适或者参加运算的两个变量类型不匹配等等。比如下边的程序片段:
int arr[2],c;
c = arr1 * 10 ;
其中的赋值语句是符合语法规则的,但是因为没有声明变量arr1,而存在语义错。