编译原理实验四:正规式到正规文法的转换

编译原理实验四:正规式到正规文法的转换
编译原理实验四:正规式到正规文法的转换

实验四:正规式到正规文法的转换一:要求

输入任意的正规式,输出相应的正规文法

二:实验目的

1.熟练掌握正规式到正规文法的转换规则

2.理解正规文法和正规式的等价性

三:实验原理

1.一个正规语言可以由正规文法定义,也可以由正规式定义,对任意一个正规文法,存在一个定义同一个语言的正规式,反之,对每个正规式,存在生成同一个语言的正规文法

2正规文法与正规式的转换规则:

1. A-〉xB,B->y则:A=xy

2.A-〉xA,A->y 则:A-〉x*y

3.A-〉x,A-〉y 则:A=x|y

四:数据结构与算法

struct Chomsky

{

string left;

string right;

};

void apart(Chomsky *p,int i)

eft=(0,j);

p[i].right=(j+1,()-j);

}

}

void VNVT(Chomsky *p);j++)

{

if((p[i].left[j]>='A'&&p[i].left[j]<='Z'))eft[j])>100)

noend+=p[i].left[j];

}

else

{

if(p[i].left[j])>100)

end+=p[i].left[j];

}

}

for(j=0;j<(int)p[i].();j++)

{

if(!(p[i].right[j]>='A'&&p[i].right[j]<='Z'))ight[j])>10 0)

end+=p[i].right[j];

}

else

{

if(p[i].right[j])>100)

noend+=p[i].right[j];

}

}

}

}

void print(Chomsky *p)eft<<"->"<

void change(string q)eft=S;ight=q;

int n;

for(int i=0;i

{

if(p[0].right.[i]==)

}*/

}

相关主题
相关文档
最新文档