软件设计师——第二章(编译原理)
1.文法
认识终结符和非终结符
-
非终结符为大写字母 终结符为小写字母 终结符不能单独出现在左边
文法的类型
-
0型文法:左边至少含有一个终结符 1型文法:(上下文有关文法)右边的元素个数大于等于左边的元素个数 2型文法:(上下文无关文法)左边的元素都为终结符 3型文法:(正规文法)右边的元素要么符合右线性要么符合左线性
如何判断一个串是否为某个文法的句型
-
构造推导树和直接进行推导
2.正规式
正规式与正规文法之间的转换
需要会比较相同的正规式化简
规则1:A->xB,B->y ——— A=xy 规则2:A->xA|y ——— A=x*y 规则3:A->x,A->y ——— A=x|y
3.有限自动机(有穷自动机)
NFA与DFA的定义(掌握DFA到NFA的转化,有点难)
-
一个确定的有限自动机(NFA)的定义:一个确定的有限状态自动机M(记做DFAM)是一个五元组: 1.S是一个有限状态集合; 2.Σ是一个字母表,他的每个元素称为一个输入字符; 3.f是一个从S×Σ*的子集映照。 4.S∈S,是一个非空初态集 5.Z∈S,是一个终态集
4.语法推导树
掌握语法推导树的画法,难点短语、简单短语、句柄
5.算符优先
有点难暂时理解不了,以后再进行补充
上一篇:
通过多线程提高代码的执行效率例子
下一篇:
【c#】关于前后端开发学习的心得体会