资源简介

利用状态表和有限自动机的运行原理编写和设计程序,判断输入的自动机是DFA还是NFA,如果是NFA,利用子集法将其确定化,然后利用求同法或求异法将所得的DFA最小化。

资源截图

代码片段和文件信息

# coding=utf-8
# compiler-exp2
import copy
from prettytable import PrettyTable

# 读取文件
file = open(“test/NFA1.txt“)
statecnt_s = file.readline()
endcnt_s = file.readline()
statecnt1 = int(statecnt_s)
endcnt = int(endcnt_s)
print(“该自动机的初始状态数为: %d“ % statecnt1)
endstates = []
for i in range(endcnt):
    temp_s = file.readline()
    temp = int(temp_s)
    endstates.append(temp)
print(“该自动机的终结状态集为: “ end=‘‘)
for i in endstates:
    print(i end=‘ ‘)
print(‘\r‘)
charcnt_s = file.readline()
charcnt = int(charcnt_s)
charlist = [“*“]
for i in range(charcnt):
    char_s = file.readline()
    charlist.append(char_s[0])
rulecnt_s = file.readline()
rulecnt = int(rulecnt_s)
print(“该自动机的转移边条数有: %d“ % rulecnt)

# 构造statedict1即原始的状态字典
statedict1 = {}
for i in range(0 statecnt1):
    tempstate = []
    

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     目录           0  2019-09-20 09:31  exp2_finite_automata\
     目录           0  2019-09-20 09:26  exp2_finite_automata\C++\
     文件         136  2019-01-21 21:37  exp2_finite_automata\C++\NFA.txt
     目录           0  2019-09-20 09:31  __MACOSX\
     目录           0  2019-09-20 09:31  __MACOSX\exp2_finite_automata\
     目录           0  2019-09-20 09:31  __MACOSX\exp2_finite_automata\C++\
     文件         174  2019-01-21 21:37  __MACOSX\exp2_finite_automata\C++\._NFA.txt
     文件          61  2019-01-21 21:37  exp2_finite_automata\C++\DFA.txt
     文件         174  2019-01-21 21:37  __MACOSX\exp2_finite_automata\C++\._DFA.txt
     文件        5487  2019-01-21 21:37  exp2_finite_automata\C++\main.cpp
     文件         174  2019-01-21 21:37  __MACOSX\exp2_finite_automata\C++\._main.cpp
     文件         174  2019-09-20 09:26  __MACOSX\exp2_finite_automata\._C++
     文件        6148  2019-09-20 09:30  exp2_finite_automata\.DS_Store
     文件         120  2019-09-20 09:30  __MACOSX\exp2_finite_automata\._.DS_Store
     目录           0  2019-09-20 09:26  exp2_finite_automata\test\
     文件         333  2019-01-21 21:37  exp2_finite_automata\test\杈撳叆鏂囦欢鏍蜂緥.txt
     目录           0  2019-09-20 09:31  __MACOSX\exp2_finite_automata\test\
     文件         174  2019-01-21 21:37  __MACOSX\exp2_finite_automata\test\._杈撳叆鏂囦欢鏍蜂緥.txt
     文件          55  2019-01-21 21:37  exp2_finite_automata\test\DFA2.txt
     文件         174  2019-01-21 21:37  __MACOSX\exp2_finite_automata\test\._DFA2.txt
     文件         104  2019-01-21 21:37  exp2_finite_automata\test\DFA3.txt
     文件         174  2019-01-21 21:37  __MACOSX\exp2_finite_automata\test\._DFA3.txt
     文件          61  2019-01-21 21:37  exp2_finite_automata\test\DFA1.txt
     文件         174  2019-01-21 21:37  __MACOSX\exp2_finite_automata\test\._DFA1.txt
     文件          80  2019-01-21 21:37  exp2_finite_automata\test\NFA5.txt
     文件         174  2019-01-21 21:37  __MACOSX\exp2_finite_automata\test\._NFA5.txt
     文件          80  2019-01-21 21:37  exp2_finite_automata\test\NFA4.txt
     文件         174  2019-01-21 21:37  __MACOSX\exp2_finite_automata\test\._NFA4.txt
     文件          95  2019-01-21 21:37  exp2_finite_automata\test\NFA1.txt
     文件         174  2019-01-21 21:37  __MACOSX\exp2_finite_automata\test\._NFA1.txt
     文件          55  2019-01-21 21:37  exp2_finite_automata\test\NFA3.txt
............此处省略13个文件信息

评论

共有 条评论