语法分析
编译过程的逻辑阶段
语法分析是编译过程的逻辑阶段,其任务是在词法分析后将单词序列组合为语法单元,通过
上下文无关文法
验证源程序结构合法性,并生成
抽象语法树
(AST)。该过程使用的语法分析器可通过YACC等工具自动生成,主要分为自顶向下(如递归下降解析)和自底向上(如LR分析)两类方法。
方法
目前,已存在许多语法分析的方法。但就产生语法树的方向而言,可大致把他们分为自底向上和自顶向下两大类。目前比较流行
LL
分析法和
LR
分析法。
自上而下语法分析方法
给定文法G和源程序串r。从G的开始符号S出发,通过反复使用产生式对句型中的非终结符进行替换(推导),逐步推导出r 。
是一种产生的方法,面向目标的方法。
分析的主旨是选择产生式的合适的侯选式进行推导,逐步使推导结果与r
匹配
.
自下而上语法分析方法
从给定的输入串r开始,不断寻找子串与文法G中某个产生式P的候选式进行匹配,并用P的左部代替(归约)之,逐步归约到开始符号S。
是一种辨认的方法,基于目标的方法。
分析的主旨是寻找合适的子串与P的侯选式进行匹配,直到归约到G的S为止 。
功能
按照源语言的语法规则,从词法分析的结果中识别出相应的语法范畴,同时进行语法检查。
给定文法G和字符串( ∈VT*),检查、判定 ∈L(G)?即检查、判定是否是文法G所能产生的合法的句子,同时报告和处理语法错误。
构造元素
源程序串 (L1形式)
源语言的文法G
识别出的语法范畴的表示
参考资料
编译原理与语法编译器设计实现详解
.百度智能云.2024-11-20
编译器的核心功能与发展趋势解析
.知乎.2025-01-07
最新修订时间:2025-10-06 20:33
条目作者
小编
资深百科编辑
目录
概述
方法
参考资料
Copyright©2024
闽ICP备2024072939号-1