实验目的:通过正规式构造NFA(有穷自动机)方法。
所运用到的语法规则:
语句 规则
1.R=Ø /R=ε X-----ε----->Y
2.R=a X-----a----->Y
3.R=r1r2 A-----r1----->B-----r2----->C
4.R=r1|r2
5.R=r1*
对于这个实验呢?我觉得对于现在的我还是很难实现。因为要考虑到很多问题。例如文法的划分,符号的识别,怎么进行分析 。等等等等
我的想法是:1.先对输入的正规式进行部分划分
2.运用多个数组,对正规式,产生的结点,初态,终态进行存储
3.状态结点的符号可以以X为初态,Y为终态,新的结点可以自己按A,B,C.....写。我觉得可以用到链表
4.在语法分析方面的话,尽量按照上述的规则进行编写,要用到数据结构的知识。
5.输出的结果用5元组太难输出,因为还要辨别结点状态,还不如直接以文法表述,我也不太理解5元组是什么。
看了一些网上,其他人写的程序,发现很多地方都没看懂,有些语法不认识,能描述出该实验的文章很少。
程序: