Chomsky文法类型判断_第1页
Chomsky文法类型判断_第2页
Chomsky文法类型判断_第3页
Chomsky文法类型判断_第4页
Chomsky文法类型判断_第5页
已阅读5页,还剩1页未读 继续免费阅读

下载本文档

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

文档简介

1、编译原理实验 实验名称:Chomsky文法类型判断姓名: 学号: 教师签字: 成绩: Chomsky文法类型判断实验目的: 编写程序,判断文法的类型。实验要求:输入一组任意的规则,输出相应的Chomsky 文法的类型。实验原理:10型文法产生式特点:a-B。2. 1型文法产生式特点:|a|=|B|,除S-#外。3. 2型文法产生式的特点:A-r,除S-#外。4. 3型文法产生式的特点:A-aB|a (右线性) A-Ba|a (左线性)实验代码:#include#includeusing namespace std;/*char b1010;/*bool wenfa0(int k) /0型文法判

2、断int i,j,k1=0;for(j=0;j=k;j+)for(i=0;i=A & bji=Z)k1+;break;elsebreak;if(k1=k+1)return true;elsereturn false;/*bool wenfa1(int k,char c) /1型文法判断int i,j,len;bool flag1=false,flag2=false;for(i=0;i=k;i+)len=strlen(bi); for(j=0;jlen;j+) if(bij=-) if(len-(2*j+1)0) return false; else flag2=true; if(bij=c &

3、 !flag2) flag1=true; if( flag2 & bij=#) return false; return true; /*bool wenfa2(int k) /2型文法判断int i,j,len;for(i=0;i=k;i+)len=strlen(bi);for(j=0;j=a & bij1)return false;return true;/*bool wenfa3(int k) /3型文法判断int i,j,len;bool flag=false;for(i=0;i=k;i+)len = strlen(bi);coutbiendl;for(j=0;j=A & bij=A

4、& bij+1=A & bij=A & bij+1=A & bij=Z & j=len-1 & bij-1=-)return false;if(!flag & bij=-)if(len-j-1=2)flag=true;elsereturn false;flag=false;return true;/*int main()char a100,c,w=3,h=0;int i=0,j,len,k;cout *Chomsky文法类型判断*endl;cout请输入产生式endl;gets(a);coutc;len=strlen(a);k=0;j=0;for(i=0;ilen;i+)if(ai= ) bkj=0;j=0;k+;elsebkj+=ai;if(wenfa0(k)if(wenfa1(k,c)if(wenfa2(k) if(wenfa3(k) cout该文法是3型文法endl; else cout该文法是2型文法endl;elsecout该文

温馨提示

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

评论

0/150

提交评论