软件设计师——第二章(编译原理)

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.算符优先

有点难暂时理解不了,以后再进行补充

猜你喜欢

转载自blog.csdn.net/weixin_44584292/article/details/108436656
今日推荐