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

下载本文档

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

文档简介

实验4:转换为正规语法一、要求输入任意常规格式以输出相应的常规语法第二:实验的目的1.熟练掌握转换到正规语法的规则2.理解正规语法和正规对等第三:实验原理1.一种正规语言可以由正规语法或正规语法定义,可以有为任何正规语法定义相同语言的正规格式,反之,也存在为每种正规语言创建相同语言的正规语法2正则语法和正则转换规则:1 . A- XB,b-y: A=xy2.a- xa,对于a-y:a- x * y3.对于A- x,A- y:A=x | y四、数据结构和算法Struct Chomsky字串左;String rightVoid apart(Chomsky *p,int i) /内部版本向左和向右寻找Void VNVT(Chomsky *p)/VN和VTVoid print(Chomsky *p)/输出四个元组,这是常规语法Void change(Chomsky *p)/到常规语法的转换函数5:错误分析1:用户定义的变量容易混淆,注释很重要。很容易防止定义此类错误。2: if条件判断不明确,字符串的段获取不明确。3:程序没有写,实验失败了。Vi:实验结果和分析7:源代码#include#includeUsing namespace STD#define max 50int NONE=1;int RELEFT=1;String strings、noend、end/储存非终止元和终止元字串r;/正则表达式int m=1;/记录创建数Struct Chomsky/保存常规语法结构字串左;String rightVoid apart(Chomsky *p,int i) /内部版本向左和向右int j;for(j=0);J=Api。leftj=Z)/非终止符判断If(noend.find(pi)。leftj)100)Noend=pi。leftj;ElseIf(end.find(pi)。leftj)100)End=pi。leftj;for(j=0);j(int)pI. right . length();j)If(!(p I)。right j=AP I。right j=z) )/确定终结器If(end.find(pi)。rightj)100)End=pi。rightj;ElseIf (noend.find (p I)。right j) 100)Noend=pi。rightj;void print(chom sky * p)/4元组输出int I;Coutr格式是正规语法的第一个P0。right=q;int

温馨提示

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

评论

0/150

提交评论