摘要: 一个python的文件有两种使用的方法: 第一是直接作为脚本执行 第二是import到其他的python脚本中被调用(模块重用)执行 if __name__ == "__main__": 的作用: 控制这两种情况执行代码的过程,在if __name__ == 'main': 下的代码只有在第一种情况 阅读全文
posted @ 2020-10-02 14:03 TThornBirds 阅读(96) 评论(0) 推荐(0) 编辑
摘要: 对于一个给定的文法,构造他的LL(1)分析表的步骤: 一:对文法进行等价变换 一般题目给定一个文法,都会存在直接左递归和公共前缀: (1)首先会对文法消除直接左递归:方法(见“语法分析-消除左递归”) (2)然后需要对已经消除左递归的文法进行消除公共前缀:方法: 二:求出每个产生式的predict集 阅读全文
posted @ 2020-08-03 20:55 TThornBirds 阅读(2117) 评论(0) 推荐(0) 编辑
摘要: 一:Fisrt集合 步骤: 1)若X->a…,则将终结符a加入FIRST(X)中; 2)若X->ε ,则将终结符ε加入FIRST(X)中; 3)若 X->BCD…E,则将First(B)所有元素(除了空集)加入 First(X),然后检测First(B),若First(B)中不存在空集, 即ε,则停 阅读全文
posted @ 2020-07-28 16:51 TThornBirds 阅读(933) 评论(0) 推荐(0) 编辑
摘要: 一:什么是左递归? 在二型文法(上下文无关文法中),若一个非终极符A有任何直接文法规则或者通过多个文法规则,推导出的句型最左边符号又会出现A,我们说这个非终极符A是左递归的。二:左递归的类型 • 直接左递归:经过一次推导就能看出文法存在左递归 例如:A->Aa|b ,A∈VN ,a,b∈(VN∪VT 阅读全文
posted @ 2020-07-28 16:46 TThornBirds 阅读(2279) 评论(0) 推荐(0) 编辑