语法分析 编辑

语法分析语法分析

语法分析是编译过程的一个逻辑阶段。语法分析的任务是在词法分析的基础上将单词序列组合成各类语法短语,如“程序”,“语句”,“表达式”等等.语法分析程序判断程序在结构上是否正确.源程序的结构由上下文无关文法描述.语法分析程序可以用YACC等工具自动生成。完成语法分析任务的程序称为语法分析器,或语法分析程序。按照源语言的语法规则,从词法分析的结果中识别出相应的语法范畴,同时进行语法检查。

目录

方法

编辑
目前,已存在许多语法分析的方法。但就产生语法树的方向而言,可大致把他们分为自底向上和自顶向下两大类。目前比较流行LL分析法和LR分析法。

自上而下语法分析方法

给定文法G和源程序串r。从G的开始符号S出发,通过反复使用产生式对句型中的非终结符进行替换(推导),逐步推导出r 。

是一种产生的方法,面向目标的方法。

分析的主旨是选择产生式的合适的侯选式进行推导,逐步使推导结果与r匹配.

自下而上语法分析方法

从给定的输入串r开始,不断寻找子串与文法G中某个产生式P的候选式进行匹配,并用P的左部代替(归约)之,逐步归约到开始符号S。

是一种辨认的方法,基于目标的方法。

分析的主旨是寻找合适的子串与P的侯选式进行匹配,直到归约到G的S为止 。

功能

编辑
按照源语言的语法规则,从词法分析的结果中识别出相应的语法范畴,同时进行语法检查。

给定文法G和字符串( ∈VT*),检查、判定 ∈L(G)?即检查、判定是否是文法G所能产生的合法的句子,同时报告和处理语法错误。

构造元素

编辑
源程序串 (L1形式)

源语言的文法G

识别出的语法范畴的表示

下一篇 包含

上一篇 词法分析