语法分析(英语:syntactic analysis,也叫 parsing)是根据某种给定的形式文法对由单词序列(如英语单词序列)构成的输入文本进行分析并确定其语法结构的一种过程。
语法分析器使用由词法分析器生成的各个词法单元的第一个分量来创建树形的中间表示。
![](https://img2020.cnblogs.com/i-beta/1765383/202003/1765383-20200307210728273-416429966.png)
语义分析是审查源程序有无语义错误,为代码生成阶段收集类型信息。
语义分析器(semantic analyzer)使用语法树和符号表中的信息来检查源程序是否和语言定义的语义一致。它同时也收集类型信息,并把这些信息存放在语法树或符号表中,以便在随后的中间代码生成过程中使用。