编译原理期末复习总结

1.构造正规式的DFA。

例:1(0|1)*101
首先构造NFA
在这里插入图片描述
NFA化为DFA:
状态转换表:
在这里插入图片描述在这里插入图片描述
在这里插入图片描述

2.正规式转成正规文法。

例 :将r=a(a|d)*转换成相应的正规文法
在这里插入图片描述

3.正规文法转成正规式。

例:文法G[S]
S→aA
S→a
A→aA
A→dA
A→a
A→d
解:
在这里插入图片描述

4.正规文法转成有穷自动机。

例:文法G[S]
S → aA
S → bB
S → ε
A → aB
A → bA
B → aS
B → bA
B → ε
解:
在这里插入图片描述

5.带标注的语法分析树。

综合属性:从下往上
继承属性 :从上往下

例: 对于语言 在这里插入图片描述,我们还可以设计一个含有继承属性的属性文法作为语义计算模型(开始符号为 S):
S →ABC { B.in_num := A .num;C.in_num := A .num;
if (B.num=0 and (C.num=0)
then print (“Accepted!”)
else print (“Refused!”) }

A → A1a { A.num := A1 . num + 1 }

A → a { A.num := 1 }

B → B1b { B1 . in_num := B.in_num;
B.num := B1 . num -1 }

B → b { B.num := B.in_num -1 }

C → C1c { C1 . in_num := C.in_num;
C.num := C1.num -1 }

C → c { C.num := C.in_num -1 }

这个属性文法既包含综合属性,又包含继承属性。其中,A . num,B . num 和 C . num 是 综合属性,而 B . in_num 和 C . in_num 是继承属性。
输入串 aaabbbccc
在这里插入图片描述

6.将程序划分为基本块,并画出程序流程图。

在这里插入图片描述在这里插入图片描述

7.DAG图的构造过程。

在这里插入图片描述
在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述
在这里插入图片描述在这里插入图片描述在这里插入图片描述
在这里插入图片描述在这里插入图片描述在这里插入图片描述

8.编译过程和编译程序的结构

在这里插入图片描述

9.判断是否为LL(1)文法

Select集合:有First()就写First()里面的元素,如果First()为空,则用Follow()集合里面的元素。
在这里插入图片描述
在这里插入图片描述

10.LR(0)分析表

消除左递归:
在这里插入图片描述
提取公因子:
在这里插入图片描述
例:已知文法G[S],求其LR(0)的分析表。
S → aA | bB
A → cA | d
B → cB | d
在这里插入图片描述在这里插入图片描述在这里插入图片描述

11.LR(0)分析过程

例:设有文法G[S]:
(1)S→aAcBe
(2)A→b
(3)A→Ab
(4)B→d
对输入串abbcde使用移进-归约的方法分析它是否为上述文法的句子
在这里插入图片描述在这里插入图片描述

12.SLR(1)分析法

SLR(1)的分析过程与LR(0)的分析过程完全一样, 唯一不同的是分析表!
在这里插入图片描述在这里插入图片描述

13.LR(1)分析法

在这里插入图片描述在这里插入图片描述
在这里插入图片描述在这里插入图片描述

14.LALR(1)分析法

在LR(1)项目集规范族基础上,合并同心集.
在这里插入图片描述在这里插入图片描述
在这里插入图片描述在这里插入图片描述
在这里插入图片描述在这里插入图片描述
在这里插入图片描述在这里插入图片描述

15.语法分析方法

在这里插入图片描述

16.乔姆斯基层次

在这里插入图片描述
L0:0型文法又叫非限制文法或短语结构文法。
L1:1型文法又叫上下文有关文法。
L2:2型文法又叫上下文无关文法。
L3:3型文法又叫正规文法。

17.状态转换图转成正则表达式

公式:
在这里插入图片描述
在这里插入图片描述
答案:(010|1)*

18.NFA和DFA的三种表现形式

NFA和DFA都是都是有穷自动机,有穷自动机三种表示形式:
数学定义、状态转换图、状态转移矩阵。

19.文法与语言的关系

文法对应的语言唯一,语言对应的文法不唯一。

  • 19
    点赞
  • 140
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值