名词解释
规范句型 最右推导(规范推导)产生的句型
句柄 最左直接短语
活前缀 是规范句型的一个前缀,不含句柄以后的任何符号。
(tip:ε是属于任意串的前缀集合的)
LR(0)项目 加入圆点的产生式
思路解析
自下而上的文法分析,基本要满足这么几个需求,每个阶段的下一步操作是唯一的(编译原理中文法分析核心需求)、过程规范高效(很多属于都是基于这个需求的,比如句柄,活前缀,素短语等)
自下而上文法的核心工作过程之一是不断读取输入字符串到分析栈(栈内的这一部分就被成为活前缀),当活前缀末尾出现一个完整的句柄,立即进行规约,然后继续之后的工作
构造识别文法活前缀的DFA
首先根据列出所有LR(0)项目,每个项目都是一个状态,可以将他们构成一个NFA,其中圆点位置相同的状态用ε转移弧连接,方向是从产生式左到产生式右的方向。
下一步将能用ε弧转移的状态合并为大状态,合成的的大状态(项目集)的集合就被成为LR(0)项目集规范族(项目集合的集合——族)
有效项目
A → β 1 ⋅ β 2 A \rightarrow \beta_{1}· \beta_{2} A