
编译原理
WISH2017
当我成尘时,你将看见我的微笑
展开
-
编译原理:属性文法:文法形式判别。
再课本上有4条语句的描述,每次看都会比较模糊。所以总结一下。基本了解:属性文法:上下无关文法+文法符号的属性属性的计算规则=语义规则属性分类:继承属性,综合属性。属性文法判别:形如产生式:A->a语义规则形式:左部 右部 文法符号综合属性 产生式右部任意属性 产生式右部非终结符继承属性 产生式右部符号和文法符号任意属性 也就是说,左部只能是关于非终结的属性。例子:这里说一下a选项的判别:继承属性有Qb,Rd,Rf.综合属性有原创 2020-06-09 15:35:27 · 1650 阅读 · 2 评论 -
编译原理:右线性文法转左线性文法
右线性文法形如:A->bB|b左线性文法形如:A->bB|b转换步骤:右线性文法->FA->状态转换矩阵->DFA->(DFA化简矩阵->最小DFA->)左线性文法。例子:给定右线性文法G[S]:S→ 0S | 1S | 1A | 0BA→ 1C | 1B→ 0C | 0C→ 0C | 1C | 0 | 1求出一个与G[S]等价的左线性文法。首先画出其FA;然后是转换矩阵:接着是DFA:明显不是最小DFA原创 2020-06-05 00:07:41 · 11027 阅读 · 19 评论 -
编译原理:奇数个0和奇数个1的正规式求解
编译原理第三版词法分析:P64-8-3奇数个0或1,一看好像很难下手。我们从简单的做起,一步一步分析。首先构造奇数个0,一个0时直接就是正规式:0然后是3,5,7……个,我们需要每次增加两个0,即(00)*现在将起组合起来,得到正规式:0(00)*这样就保证了一定有奇数个0,现在不考虑1的个数,我们向其中添加n个1,可以放在0的前面,0与中间(00)*,(00)*的两个0中间和(00)*的后面,但是第2个位置和第4个位置可以合并。于是最后的结果就是:1*0(1* | 01*0原创 2020-06-04 21:42:54 · 6926 阅读 · 7 评论