编译原理怎么看是终态和初态
发布时间: 2024-09-15 09:24:02
‘壹’ 编译原理搜索符的问题
从初态开始,(S':=.S,# ) ,初态的核心项目的搜索符为#号,这是定的,然后扩充初态,就是把所有的(S:=. αβ,# )加进去,若α为一个非终结符,假设为A,则把(A:= .γ)加进去,A:= .γ的搜索符为 FIRST(β#),就是说若β为空,则为原来S的搜索符,若β不为空,则为β的首终结符。继续扩γ,一直到初态不能扩充为止。goto时,核心项目的搜索符是继承过来的。
例子,若某状态的核心项目为(A:=α.Bβ,a),则把项目(B:= .γ,FIRST(βa))加进去。
‘贰’ 编译原理,如何判断一个FA是DFA还是NFA
第一个是NFA 第二个是DFA
主要区别
1)DFA没有输入空串之上的转换动作;
2)对于DFA,一个特定的符号输入,有且只能得到一个状态,而NFA就有可能得到一个状态集;
‘叁’ 对给定的正规式b(a|b)*aa,构造其NFA M,并将其确定化。
表示方法:五元组(S,Z,f,S0,z)
S:状态集
Z:字母表
f:映射关系
s0:初态
z:终态
(2)确定有限自动机DFA:f为单值映射
(3)非确定有限自动机NFA:f为多值映射
(4)状态转换图和状态转换矩阵
(3)编译原理怎么看是终态和初态扩展阅读
假定DFAMd=({s0,s1,s2},{a,b},f,s0,{s2}):
f:
f(s0,a)=s1f(s0,b)=s2
f(s1,a)=s1f(s1,b)=s2
f(s2,a)=s2f(s2,b)=s1
试着给出Md的状态转换图和状态转换矩阵。
状态转换矩阵如下
ab
s0s1s2
s1s1s2
s2s2s1
热点内容