编译原理DFA(有限确定自动机)的构造
CODE: https://github.com/pxjw/Principles-of-Compiler/tree/master/consDFA 原题: 1、自己定义一个简单语言或者一个右线性正规文法 示例如( 仅供参考 ) G[S]:S→aU|bV U→bV|aQ V→aU|bQ Q→aQ|bQ|e 2、构造其有穷确定自动机,如 3、利用有穷确定自动机M=(K,Σ,f, S,Z)行为模拟程序算法,来对于任意给定的串,若属于该语言时,该过程经有限次计算后就会停止并回答“是”,若不属于,要么能停止并回答“不是” K:=S; c:=getchar; while c<>eof do {K:=f(K,c); c:=getchar; }; if K is in Z then return (‘yes’) else return (‘no’) 开始编程! 1.状态转换式构造类: current——当前状态 next——下一状态 class TransTile { public: char current; char next; char input; TransTile(char C,char I,char Ne){ current = C; next = Ne; input = I; } }; 2.DFA的构造类 此处包括DFA的数据集,字母表,以及过程P的定义。 包括了初始化,遍历转换