编译原理实验三:正规文法到正规式的转换_第1页
编译原理实验三:正规文法到正规式的转换_第2页
编译原理实验三:正规文法到正规式的转换_第3页
编译原理实验三:正规文法到正规式的转换_第4页
编译原理实验三:正规文法到正规式的转换_第5页
已阅读5页,还剩4页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、实验三:正规文法到正规式的转换一:要求输入任意的正规文法 , 输出相应的正规式二:实验目的熟练掌握正规文法到正规式的转换规则理解正规文法和正规式的等价性三:实验原理. 一个正规语言可以由正规文法定义, 也可以由正规式定义, 对任意一个正规文法,存在一个定义同一个语言的正规式,反之,对每个正规式,存在生成同一个语言的正规文法正规文法与正规式的转换规则: A- xB,B-y 则: A=xy A- xA,A-y 则: A- x*y A- x, A- y 则: A=x|y四:数据结构与算法struct Chomskystring left;string right;void apart(Chomsky

2、 *p,int i) ,须再另加上 using namespacestd;2:规则分解不对,导致结果出错。3:太多循环嵌套容易造成程序出错,养成把括号提前打好的习惯。六:实验结果与分析不是正规文法的不能转换:是正规文法的才可以转换:七:源代码#include#include using namespace std;#define max 50int NONE=1;string strings,noend,end;eft=(0,j);pi.right=(j+1,()-j);void VNVT(Chomsky *p);j+)if(pi.leftj=A&pi.leftj100) noend+=pi.

3、leftj;elseif(pi.leftj)100) end+=pi.leftj;for(j=0;j=A&pi.rightj100) end+=pi.rightj;elseif(pi.rightj)100) noend+=pi.rightj;int zero(Chomsky *p);j+)(if(pi.leftj=A&pi.leftj=Z)=A&pi.left0=A&pi.right0=A&pi.right1=Z)eft=pj.left)&(pi.right1=pj.right1)(if(pi.right1=pj.right1&pi.left0=pj.right1)ight =pi.right

4、+|+pj.right;pj.left=;pj.right=;elseif(pi.right1=pj.right1&pi.left0!=pj.right1)ight =pi.right+|+pj.right;pj.left=;pj.right=;if(pi.()=1&pj.()=1&pi.left=pj.left)ight=pi.right+ |+pj.right;pj.right=;)for(i=0;i2&A=pi.right1&pi.right1=Z&pi.right2= I)for(j=1;jflag-1;j=j+3)pi.rightj=;)if(j=flag-1)pi.right=(+

5、pi.(0,pi.()-1)+)+pi.(pi.()-1);)for(i=0;i1)for(j=0;jn;j+)if(pi.left=pj.left&j!=i)for(m=0;mpj.();m+)if(A=pj.rightm&pj.rightm=0);j+)if(A=pi.rightj&pi.rightj=Z)for(m=0;m1)pi.right=pi.right+|+(+pj.right+);pj.left=;pj.right=;elsepi.right=pi.right+|+pj.right;pj.left=;pj.right=;void main() int i,j;cout 编译原理实验三:正规文法到正规式的转换endl;cout 请输入正规文法 (三型文法) 的产生式总数及各产生式: endl其中左右部之间用 - 表示,空用 # 表示 n;Chomsky *p=new Chomskymax;for(i=0;istrings;apart(p,i);VNVT(p);if(three(p)eft0!=NULL)cout

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论