语义分析

语义分析

分析语义是否正确

例如

  • 变量是否重复声明
  • 指针是否指向有效地址
  • 某些数据类型是否正确使用

中间代码

符号表

管理标识符

包括如下语义信息

  • 名字 标识符源码,用作查询关键字
  • 类型 该标识符数据类型以及相关信息
  • 种类 该标识符的语义角色
  • 地址 与值单元相关的一些信息,在内存的分布

作用

  • 定义和重定义检查

  • 类型匹配校验

  • 数据越界和溢出检查(C不做越界检查)
  • 值单元存储分配
  • 函数传参校验

前端优化

  • 常数表达式节省

  • 公共表达式替换

  • 无用表达式删除