已阅读5页,还剩1页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
华北水利水电学院编译原理实验报告20132014学年 第 一 学期 2012 级 计算机科学与技术 专业班级: 196 学号: 2012196 姓名: 李明月 一、 实验题目:算符优先分析程序二、 实验内容:(1)根据给定文法,先求出FirstVt和LastVt集合,构造算符优先关系表(要求算符优先关系表 输出到屏幕或者输出到文件);(2)根据算法和优先关系表分析给定表达式是否是该文法识别的正确的算术表达式(要求输出归约过程)(3)给定表达式文法为: G(E): E#E#EE+T | TTT*F |FF(E)|i(4)分析的句子为: (i+i)*i和i+i)*i三、 程序源代码:第 6 页 共 6 页#include#include#include#includechar oppriority66=,$,$,$,$,#E#n); printf(EE+T|Tn);printf(TT*F|Fn); printf(F(E)|in);printf(文法可拆分为:n);printf(0)E-#E#n);printf(1)E-E+Tn);printf(2)E-Tn);printf(3)T-T*Fn);printf(4)T-Fn);printf(5)F-(E)n);printf(6)F-in);printf(根据FIRSTVT集和LASTVT集可以得出算符优先分析表。n); printf(-n);printf( 算符优先关系表n); printf( + * i ( ) #n); printf( + n); printf( * n); printf( i n); printf( ( n); printf( # =n);printf(-n);printf(请输入要进行分析的句子(以#号结束输入):n); gets(storage);/将输入的字符串存到数组中printf(步骤 栈 当前符号 剩余输入串 移进或归约n);k=0;Stackk=#;Stackk+1=0;int length,i; /初始化剩余字符串数组为输入串length=strlen(storage);/for(i=0;ilength;i+) remaini=storagei;remaini=0;judge();/对所输入的句子进行算符优先分析过程的函数void judge()/对所输入的句子进行算符优先分析过程的函数int i,j,f,z,z1,n,n1,z2,n2;int count=0;/操作的步骤数char a; /用于存放正在分析的字符char p,Q,p1,p2;f=strlen(storage); /测出数组的长度for(i=0;i) for( ; ; ) Q=Stackj; if(Stackj-1=+|Stackj-1=*|Stackj-1=i|Stackj-1=(|Stackj-1=)|Stackj-1=#) j=j-1; else j=j-2; z1=located(Stackj); n1=located(Q); p1=oppriorityz1n1; if(p1=) /把AnalyseStackj+1AnalyseStackk归约为N count+; printf(%d) %st%8c%17st 归约n,count,Stack,a,remain); k=j+1; i-; Stackk=E; int r,r1; r=strlen(Stack); for(r1=k+1;r1r;r1+) Stackr1=0; break; else continue;elseif(p=) /表示移进count+;printf(%d) %st%8c%17st 移进n,count,Stack,a,remain);k=k+1;Stackk=a;change();elseif(p=)z2=located(Stackj);n2=located(#);p2=oppriorityz2n2;if(p2=)count+;printf(%d) %st%8c%17st 接受n,count,Stack,a,remain);printf(该句子是该文法的合法句子。n);break;elsecount+;printf(%d) %st%8c%17st 移进n,count,Stack,a,remain);k=k+1;Stackk=a;change();elseprintf(错误!该句子不是该文法的合法句子!n);break; int located(char x) /查出某个字符在优先表中的位置int m;if(x=+)m=0;if(x=*)m=1;if(x=i)m=2;if(x=()m=3;if(x=)m=4;if(x=#)m=5;return m;void change()/将后一个字符往前移动int i,j;i=strlen(remain);for(j=0;ji;j+)remainj=remainj+1;remaini-1=0;四、 测试结果:五、小结(包括收获、心得体会、存在的问题及解决问题的方法、建议等)这次实验,真的感觉非常困难,在网上查了好久,又看了好久,才明白,在本次实验中,深刻的体会到了,自己在动手这方面的不足之处,在做这次实验的时候,又看了下课本,把内容又进行了复习,让我对算符优先分析算法的设计过程有了更深一层的了解:即先对已给定的文法按其产生式构
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年大学试题(管理类)-招聘管理历年参考题库含答案解析
- 2026年安徽国际商务职业学院高职单招笔试综合素质历年参考题库含答案解析
- 2026年大学试题(理学)-材料科学历年参考题库含答案解析
- 2026年娄底职业技术学院高职单招笔试职业适应性测验历年参考题库含答案解析
- 2026年太原幼儿师范高等专科学校高职单招笔试数学历年参考题库含答案解析
- 2026年天津石油职业技术学院高职单招笔试职业技能测验历年参考题库含答案解析
- 糖尿病饮食治疗宣教版培训课件
- 新飞-营销管理体系诊断和初步建议
- 2026年重庆市大足县教师招聘之中学教师招聘考试题库及参考答案
- 抖音电商:2026年抖音商城双11一站式报名指南
- 护理工作中24小时出入量的精准记录与管理
- JG/T 100-1999塔式起重机操作使用规程
- 形势与政策(吉林大学)知到智慧树章节测试课后答案2024年秋吉林大学
- 疼痛管理制度与规范
- 2024秋期国家开放大学专科《液压与气压传动》一平台在线形考(形考任务+实验报告)试题及答案
- 中国投资人邮箱大全
- 19R505-19G540室外管道钢结构架空综合管廊敷设
- GB/T 45003-2024职业健康安全管理工作中的心理健康安全:管理社会心理风险指南
- 医疗实习生实习合同书
- 设计院经营管理制度
- 8过渡金属配合物催化剂及其催化作用课件
评论
0/150
提交评论