ImageVerifierCode 换一换
格式:DOCX , 页数:15 ,大小:62.38KB ,
资源ID:8014597      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bingdoc.com/d-8014597.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(编译原理 实验二Word下载.docx)为本站会员(b****3)主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(发送邮件至service@bingdoc.com或直接QQ联系客服),我们立即给予删除!

编译原理 实验二Word下载.docx

1、1. 了解单词(内部编码)符号串中的短语句型结构形成规律。2. 理解和掌握语法分析过程中语法分析思想(LL,LR)的智能算法化方法。二实验环境Windows xp计算机一台,装有c+程序三、实验内容与步骤1、根据某一文法编制调试 LL ( 1 )分析程序,以便对任意输入的符号串进行分析;2、构造预测分析表,并利用分析表和一个栈来实现对上述程序设计语言的分析程序;3、分析法的功能是利用LL(1)控制程序根据显示栈栈顶内容、向前看符号以及LL(1)分析表,对输入符号串自上而下的分析过程。 步骤:1、编程时注意编程风格:空行的使用、注释的使用、缩进的使用等。2、如果遇到错误的表达式,应输出错误提示信

2、息。3、对下列文法,用LL(1)分析法对任意输入的符号串进行分析:(1)S-TE(2)E-+TE|$(3)T-FM(4)M-*FM|$(5)F-(E)|i#四、实验过程与分析(一)设计思想(1)定义部分:定义常量、变量、数据结构。(2)初始化:设立LL(1)分析表、初始化变量空间(包括堆栈、结构体、数组、临时变量等);(3)控制部分:从键盘输入一个表达式符号串;(4)利用LL(1)分析算法进行表达式处理:根据LL(1)分析表对表达式符号串进行堆栈(或其他)操作,输出分析结果,如果遇到错误则显示错误信息。(二)分析的流程图实验分析:#includestdlib.hint vnNum,gramma

3、rNum,vtNum=6;int order;int count=1;char Grammar2010,BlankTerminate202;char First54=S,(i0, E+$TM*F;char Follow56=)#char Select84=int IndiBlanket67;char VT10=typedef struct char *base; char *top; int stacksize;AnalStack;AnalStack S;int ScanGrammar() FILE *fp=fopen(文法.txt,r); FILE *tp; char singleChar,

4、nextChar; int i=0,j=0; while(!feof(fp) fscanf(fp,%c,&singleChar); if(singleChar=) Grammarij=; break; n i+; j=0; continue;- tp=fp; fscanf(tp,nextChar); if(nextChar= fp=tp; continue; | Grammari+10=Grammari0; i+; j=1; Grammarij=singleChar; j+; / printf(输入的文法:n for(int k=0;k/ printf(,Grammarkj); j+;%dn,

5、i); fclose(fp); return i;int Fill(char gi,char sij,int grammarOrder) int i,j; for(i=0;ivnNum;i+) if(Firsti0=gi)break; j=0; while(VTj! if(VTj=sij)break; IndiBlanketij=grammarOrder; return 0;int Indicate() for(j=0;jvtNum;j+) IndiBlanketij=-1;=grammarNum; while(Selectij! Fill(Grammari0,Selectij,i); pri

6、ntf(预测分析表如下: printf(%3d,IndiBlanketij); printf(int Terminate_$(int grammarNum) int j=0; int count; for(int i=0; BlankTerminatei1=0 BlankTerminate00=Grammar00; if(Grammar01= BlankTerminate01=1 count=1; for(i=1;count; if(Grammari0=BlankTerminatej0) if(Grammari1= BlankTerminatej1= break; if(j=count) Bl

7、ankTerminatecount0=Grammari0; if(Grammari1= BlankTerminatecount1= count+; count-;$的终结符表: /*j;%c:%cn,BlankTerminatei0,BlankTerminatei1); */ return count;AnalStack InitStack() S.base=(char *)malloc(100*sizeof(char); if(!S.base)exit(1); S.top=S.base; S.stacksize=100; *S.top= S.top+; return S;int Print(

8、char AnalStr,int i,int sign) int startpos=i;%dt,count); count+; char *p=S.base; while(p!=S.top+2),*p); p+;t while(AnalStri!,AnalStri);tt if(sign=0) int j=0; while(Grammarorderj!,Grammarorderj); if(j=0)printf( if(sign=1)%c匹配n,AnalStrstartpos);int Push(char topChar,char curChar,int sign,int ii,char An

9、alStr) if(Firsti0=topChar)break; if(VTj=curChar)break; order=IndiBlanketij; Print(AnalStr,ii,sign); j=1; while(Grammarorderj! j+; j-; while(j!=0) if(Grammarorderj! S.top+; *S.top=Grammarorderj; j-;int Analysis() int i=0; int sign=0; int count=1; char curChar; InitStack(); char AnalStr10=输入产生式: scanf

10、(%sAnalStr);步骤t分析栈t剩余输入串t产生式n sign=0; curChar=AnalStri; char *p=S.top; char topChar=*p; S.top-; if(topCharZ if(topChar=curChar) sign=1; Print(AnalStr,i,sign); i+; else printf(Analysis ERROR! return 0; if(topChar= break; return 0; else Push(topChar,curChar,sign,i,AnalStr);预测分析成功!int main() int i,m; grammarNum=ScanGrammar(); vnNum=Terminate_$(grammarNum);Select集: m=0; while(Selectim! /printf(%c ,Selectim); m+;/ printf( Indicate(); Analysis();实验结果:五、实验总结经过本次的实验,使我真正的了解语法分析器的实现过程,让我更加深刻的语法分析器的实现原理,虽然在本次试验中遇到了各种各样的困难和错误,但在同学的帮助下还是把错误改正过来了,是的语法分析器能够正确的识别相应的语法和表达式。

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2