




下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、v1.0可编辑可修改编译原理实验报告题目:算符优先分析法分析器学院计算机科学与技术专业xxxxxxxxxxxxxxxx学 号 xxxxxxxxxxxx姓名宁剑指导教师 xxxx2015年xx月xx日算符优先分析法分析器、实验目的1 .理解自底向上优先分析,比较和自顶向下优先分析的不同。2 .理解算符优先分析的特点,体会其和简单优先分析方法的不同3 .加深对编译器语法分析的理解。二、实验原理1 .自底向上优先分析方法,也称移进-归约分析,粗略地说它的思想是对输入符号用自左向右进行扫描,并将输入符号逐个移入一个后进先出栈, 边移入边 分析,一旦栈顶符号用形成某个句型的句柄或可归约用时,就将该产生式
2、的左部 非终极符代替相应的右边文法符号用。2 .算符优先分析法的基本思想首先确定算符(确切地说是终结符)之间的优先关系和结合性质,然后借助 这种关系,比较相邻算符之间的优先级来确定句型的可归约用,并进行归约。注意:算符优先分析过程是自下而上的归约过程, 但它的可归约用未必是句 柄,也就是说,算符优先分析过程不是一种规范归约。3 .终结符号间优先关系的确定,用 FIRSTVT?口 LASTVT#算。4 .最左素短语所谓素短语是指这样一个短语,它至少含有一个终结符,并且除它自身之外 不再含有其它素短语。最左素短语是指处于句型最左边的那个素短语。最左素短 语是算符优先分析算法的可归约用05 .计算得
3、到所给文法的算符优先矩阵+11()TT><<< n>>.A<V>+1><<>>1>>>><<<<>>>>耳<<<6.算符优先分析的基本过程初值卜.=1,即口皿叮,当埔人冲读人SCk VtT地7<& VrSG+lZHSM归妁为N ki= j+1 Sk)=H除去丑Q三、实验要求使用算符优先分析算法分析下面的文法:E' 一#E#E+T|TT- T*F|FF 一 PAF|P4 (E)|i其中i可以看作是一个终结符,
4、无需作词法分析。具体要求如下:1 .如果输入符号用为正确句子,显示分析步骤,包括分析栈中的内容、优先 关系、输入符号用的变化情况;2 .如果输入符号用不是正确句子,则指示出错位置。四、实验结果(程序)及分析#include <>#include <cstring>#include <iostream>#include <iomanip>#define MAX 100using namespace std;char SMAX;char shuruMAX,yuMAX;void scanner();int panyouxian(char x);void
5、 shengyuchuan();int k;char youxian77='>','<','<','<','<','>','>','>','>','<','<','<','>','>','>','>','<','<
6、;','<','>','>','>','>','>',$,$,'>','>','<','<','<','<','<','=','$','>','>','>',$,$,'>','&
7、gt;','<','<','<','<','<','$','=',; /优先关系表,其中 为大于,为小于,=为等于,$为空格int main()int l,j;cout<<"请输入一个字符串:";(shuru,MAX); /将输入的字符串存到数组剩余输入用移cout<<”步骤 栈优先关系当前符号进或归约"<<endl;k=0;Sk='#';Sk+1='0
8、39;l=strlen(shuru); / 求输入字符串的长度for(j=0;j<l;j+)yuj=shuruj;yuj='0'scanner。;return 0;void scanner。/扫描分析输入申int i,j,l,h1,l1,h2,l2,h3,l3,y1,y2,r1,r2;int step=0;/分析步骤数char a; /存放正在分析的字符char p1,Q,p2;l=strlen(shuru); / 算出输入用长度for(i=0;i<l;i+)a=shurui;if(Sk='+'|Sk='*'|Sk='A
9、9;|Sk='i'|Sk='('|Sk=')'|Sk='#')j=k;elsej=k-1;h1=panyouxian(Sj);/ 从优先关系表中查出 Sj和a的优先关系if(a='+'|a='*'|a='A'|a='i'|a='('|a=')'|a='#')l1=panyouxian(a);else /如果句子含有不是终结符集合里的其它字符,不合法(cout<<"错误!不合法的句子!"&l
10、t;<endl;break;)p1=youxianh1l1;if(p1='>')(loop:Q=Sj;if(Sj-1='+'|Sj-1=*,|Sj-1='A'|Sj-1='i,|Sj-1='('|Sj-1=')'|Sj-1='#')j=j-1;elsej=j-2;h2=panyouxian(Sj);l2=panyouxian(Q);p1=youxianh2l2;if(p1='<')/Sj+1- k归约为 Fk=j+1;shengyuchuan();step+
11、;cout<<left<<"("<<step<<setw(6)<<")"<<setw(10)<<S<<setw(10)<<p1<<setw(10)<<a<<setw(5)<<right<<yu<<setw(15)<<" 归约"<<endl;i-;Sk='F'r1=strlen(S);for(r2=k+1;r2<r
12、2;r2+)Sr2='0'/多个字符归约,把栈顶后面的舍弃y1=strlen(yu);for(y2=0;y2<y1;y2+)yuy1-y2=yuy1-y2-1;yu0='i'elsegotoloop;elseif(p1='<') /移进如果上一步是不归约,剩余的字符串减少一个(shengyuchuan();shurul='0'step=step+1;cout<<left<<"("<<step<<setw(6)<<")"&
13、lt;<setw(10)<<S<<setw(10)<<p1<<setw(10)<<a<<setw(5)<<right<<yu<<setw(15)<<" 移近"<<endl;k=k+1;Sk=a;else(if(p1='=')(h3=panyouxian(Sj);l3=panyouxian('#');p2=youxianh3l3;if(p2='=')(shengyuchuan();step+;
14、cout<<left<<"("<<step<<setw(6)<<")"<<setw(10)<<S<<setw(10)<<p1<<setw(10)<<a<<setw(5)<<right<<yu<<setw(15)<<" 接受"<<endl;cout<<"合法的句子!"<<endl;break;
15、elsek=k+1;Sk=a;elsecout<<"出错!"<<endl;break;void shengyuchuan()int i,j;i=strlen(yu);for(j=0;j<i;j+)yuj=yuj+1;yui-1='0'int panyouxian(char x)int m;switch(x)case'+':m=0;break;case'*':m=1;break;case'A':m=2;break;case'i':m=3;break;case'
16、(':m=4;break;case')':m=5;break;case'#':m=6;break;return m;14输入的程序界面如图:H中a MN «tl>- <B .* 43M UB»j 二蠹".阳 =r» A /, UH 图5国|司U芭.ttn Mm 4-i* I. 咄(I 上,I !-飞d产一ll:J“HE:l»l-rLal-!iMi.I:c.'i.ri1,IJfe:»-l>.l.IEJI输入一个正确的句子,结果如下:x一, ,字符串二士*士*<1+上)#1栈优抚关系当前苻号果脍输入串C1)年 <iC2>41<+<3>UF<+C4>(IJ+<iC5>ftF+L<<£+iJ#EGKF+F<菁C7>#r*F*<<QMJ»F+F*<4iC9)UF+F*(i <+nitC1B)ttRMfP (+Cll>ftF*F*<F* <<.12 >AF+FMF+i <>C13)ttP+F*CP,F <>
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 七年级语文下册 第四单元 14 驿路梨花第2课时教学设计 新人教版
- 热点06 个人感悟及计划愿望(阅读理解之完形填空题)(原题版)
- 2025四川工程合同管理选择题
- 2025年度个人租房合同范本
- 2025智慧城市设计与建设委托合同
- 2025年店面房屋租赁合同范本
- 12慧眼看交通(教学设计)-2023-2024学年道德与法治三年级下册统编版
- 2025标准个人租房简单合同书范本
- 中小学校长在第一次食堂工作会议上讲话:食堂工作7大核心让师生吃得超满意
- 《华南理工大学模板》课件
- 意识与计算的理论模型
- 新生儿高胆红素血症课件
- 2024年南京出版传媒(集团)有限责任公司招聘笔试参考题库附带答案详解
- 工程伦理案例与分析
- 厦门市2024届高三毕业班第四次质量检测 政治试卷(含答案)
- (附答案)2024公需课《百县千镇万村高质量发展工程与城乡区域协调发展》试题广东公需科
- 微创冠脉搭桥手术
- 档案馆档案数字化加工项目技术方案
- 福建省泉州市2022-2023学年八年级下学期英语期中试卷(含答案)
- 2024版国开电大本科《公共政策概论》在线形考(形考任务1至4)试题及答案
- 园林植物器官的识别-园林植物营养器官的识别
评论
0/150
提交评论