文法推导与正规式的例题:
分析:“|”表示或者,S可以指向aA或bB,A可以指向bS或b,B可以指向aS或a
那么S => aA => abS => abaA => ababS => ababaA => ababab ,选项A可以推导出来
选项B:S => bB => baS => babB => babaS => bababB => bababa,也能推导出来
选项C:S => aA => abS => abbB => abbaS => abbaaA => abbaab,也能推导出来
所以第一个空选D。
第二个空,求对应的正规式有一个技巧就是将待选项与第一题的文法像对应,看能否匹配;
(a|b)*可以匹配第一空的所有文法,包括D,所以它的范围太广了,不匹配;
(ab)*不能匹配bababa,不匹配
(ab)*(ba)*不能匹配ababab,不匹配
(ab|ba)*可以匹配A,B,C选项,D选项匹配不了,所以选C
有限自助机的例题:
分析:题目中提到的初态可以看做起点,终态可以看做终点,规则是从A开始,最终在C停止;
0000表示从A到B后,一直在B做循环,最终停在B;1111表示一直在A做循环,0101表示从A到B到C到B最终停在C,这是正确答案;1010表示从A到B到C,最终停在B;