第第3章章 语法分析语法分析语法分析是编译过程的核心部分。语法分析的基本任务是在词法分析识别出单词符号串的基础上,分析判断程序的语法结构是否符合语法规则。语言的语法结构用上下文无关文法来描述,因此,语法分析器的任务本质上是按上下文无关文法的产生式,确定整个单词串是否构成语法上正确的程序。语法分析的方法通常分为两类:自上而下分析法和自下而上分析法3.1文法和语言3.2推导与语法树3.3自上而下分析方法3.4自下而上分析方法3.5LR分析法3.1 文法和语言文法和语言文法文法是程序语言的生成系统。自动机自动机是程序语言的识别系统。用文法可精确定义一个语言,并依据文法构造出识别该语言的自动机。因此,文法对程序语言和编译程序的构造具有重要意义,如程序语言的词法可用正规文正规文法法描述,语法可用上下文无关文法上下文无关文法描述,而语义可借助于上下文有关文法上下文有关文法描述。3.1.1文法和语言的概念1语言语言通常用表示字母表。由字母表中字符组成的有穷序列称为上的字符串字符串或字字。字母表上的所有字符串(包括空串)组成的集合用*表示。对于字母表,*上的任一子集子集称为上的一个语言语言,记为L,L