1. 一个自动机是一个五元组,分别是 2. 使用子集法的步骤是: 1) 将起始状态求闭包,得到S0。 2) 将S0做f函数转换,得到在任意符号集元素下的状态集。 3) 对状态集求空闭包,并以空闭包为终点,记录mov函数。 4) 如果空闭包不存在,将空闭包记录。 5) 循环2至5直到新产生的空闭包不再被记录。
2019-12-21 20:50:22 201KB NFA确定化
1
编译原理 刘坚 第二版答案 完整版,大家可以放心下载使用哈~
2019-12-21 20:39:23 3.24MB Compilers NFA DFA
1
使用JAVA实现编译原理的NFA确定化为DFA的文档报告和java源代码
2019-12-21 20:36:28 200KB NFA确定化DFA
1
用VC 6.0运行,完美编译运行,反正我们老师检查是完美的过
2019-12-21 20:29:17 21KB c++ 正则表达式 NFA DFA
1
通过数的操作有NFA的状态转换表得到DFA的状态转换表
2019-12-21 20:26:44 3KB NFA DFA
1
内涵C++源码,UML类图,算法思想文档。内容主要包括:自定义正则文法(在ProgramManager类中自定义),根据正则文法和输入的正则表达式构建NFANFA自动构建DFA,DFA最小化,DFA匹配字符串。其中含有大量的中文注释,并提供了测试方法。本人还是学生,希望各位大神多多指点。
2019-12-21 20:25:43 17.1MB C+ 编译原理 词法分析 DFA
1
本程序利用C++编写NFA到DFA的转化和NFA最小化
2019-12-21 20:18:40 861KB NFA 最小化
1
(1)Lex输入文件的解析: ·主函数main()实现对Lex输入文件结构的解析 ·int checkType(char c)函数判断是定义段开始?定义段结束?规则段? (2)正规表达式的解析: ·void replaceID(string &re)函数将用户标示id转换成re ·通过对正规表达式的解析的解析可以将规则段的模式部分全部转换成正规表达式 (3)一个正规表达式到NFA的转换算法的实现 ·void generateNFA(const string & re,vector &tnfa,vector &isTer,int index)函数完成正规表达式到NFA的转换 其中:re:正规表达式 tnfa:数据结构是vector,即NFA的每个结点是list (关于NFA的数据结构的描述见后面) isTer:统计tnfa中接受状态结点(isTer[i]!=0表示结点i为接受态) (3)多个NFA的合并 ·void joinNFA(vector &nfa1,const vector &nfa2) 函数完成了NFA nfa1和nfa2的合并,从总体来看起到所有NFA的合并 ·合并NFA的基本原理:将nfa2的开始的点中的内容全部拷贝给nfa1的开始结点然后,再把nfa2中除了开始点以外的点连接到nfa1的末尾即可,注意结点编号的变化 (4)NFA的确定化算法的实现 ·void TODFA()函数完成NFA到DFA的转换 ·在进行NFA确定化算法的同时,自动机的接受态集合也做相应的变换 vector nfaIsTer vector dfaIsTer
1
本人自己花了一整天编的NFA转换为DFA的程序,算法来至编译原理教材(陈意云)
2019-12-21 20:00:01 531KB NFA转换为DFA
1
自己用C语言做的NFA到DFA的转换 有较为详细的备注,希望有所帮助。
2019-12-21 19:56:53 205KB DFA NFA 编译 c语言
1