欢迎来到第壹文秘! | 帮助中心 分享价值,成长自我!
第壹文秘
全部分类
  • 幼儿/小学教育>
  • 中学教育>
  • 高等教育>
  • 研究生考试>
  • 外语学习>
  • 资格/认证考试>
  • 论文>
  • IT计算机>
  • 法律/法学>
  • 建筑/环境>
  • 通信/电子>
  • 医学/心理学>
  • ImageVerifierCode 换一换
    首页 第壹文秘 > 资源分类 > DOCX文档下载
    分享到微信 分享到微博 分享到QQ空间

    天津理工大学编译原理试验3:语义分析与中间代码生成.docx

    • 资源ID:229503       资源大小:53.62KB        全文页数:15页
    • 资源格式: DOCX        下载积分:5金币
    快捷下载 游客一键下载
    账号登录下载
    三方登录下载: 微信开放平台登录 QQ登录
    下载资源需要5金币
    邮箱/手机:
    温馨提示:
    快捷下载时,如果您不填写信息,系统将为您自动创建临时账号,适用于临时下载。
    如果您填写信息,用户名和密码都是您填写的【邮箱或者手机号】(系统自动生成),方便查询和重复下载。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP,免费下载
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    天津理工大学编译原理试验3:语义分析与中间代码生成.docx

    大讲记大塔实验报告学院(系)名称:计算机与通信工程学院姓名学号专业班级实验项目实验三:语义分析与中间代码生成课程名称编译原理课程代码实验时间实验地点计算机软件实验室7-220计算机软件实验室7-215批改意见成绩教师签字:实验内容:可选择LLl分析法、算符优先分析法、LR分析法之一,实现如下表达式文法的语法制导翻译过程。文法GE如下所示:E-E+TIE-TITT-T*FIT/FIFF-PaFIPP(E)Ii要求构造出符合语义分析要求的属性文法描述,并在完成实验二(语法分析)的基础上,进行语义分析程序设计,最终输出与测试用例等价的四元式中间代码序列。实验目的:1 .掌握语法制导翻译的基本功能。2 .巩固对语义分析的基本功能和原理的认识。3 .能够基于语法制导翻译的知识进行语义分析。4 .掌握类高级语言中基本语句所对应的语义动作。5 .理解并处理语义分析中的异常和错误。实验要求:1 .在实验二的基础上,实现语法制导翻译功能,输出翻译后所得四元式序列;2 .要求详细描述所选分析方法进行制导翻译的设计过程;3 .完成对所设计分析器的功能测试,并给出测试数据和实验结果;4 .为增加程序可读性,请在程序中进行适当注释说明;5 .整理上机步骤,总结经验和体会;6 .认真完成并按时提交实验报告。【实验过程记录(源程序、测试用例、测试结果及心得体会等)】#include<iostream>#include<cstring>#definesize1024usingnamespacestd;intstep=();typedefstructvariable_T(charOPerateJ操作符stringVar1;变量1stringvar2;变量2intnum;第几个变量variable_T;VariabIe_Ttsize;记录四元式变量的变量iniIsize=-I;/依示是第tsize+1个变量typedefstructchar_stack(charcontentJ/当前字符stringendchar:这个符号代表的中间变量可以是i,也可以是tl,t2,等等intnum;和该字符相关的中间变量的序号chajstack;stringtable1913=/+-*a)#(iETFP*0*/"e"err","e"Je"Je","err","e飞5”,飞6","1","2","3","4",/*1*,'s7",飞8"JenvelT”,“err”,"eir”acc”,“enVerr7err“JenVenVerr",/*2*/,r3","r3,"s9,"sl","err,"r3",yy',e,',err,'err"err'',err,'err,/*3*/,r6",',r6",r6,"r6',"err,"r6",''>>rr,'err,err,err,err,/*4*/"r8","r8",',r8",ur8,"sl,r8",'Y8rr',e,'err'',err',e'',e,/*5*/,'err*,e>''err','err',',err,',err'"s5",s6",',c",2,"3","4u,/*6*/"rl0","10"Jrl0",'T10",'T10",'Tl(,'T10'',"err"Jerr","err","err"Jerr","err",*7*/"e"Je","err"Jerr"e"Je"Je","s5","s6","err","d",“3“,“4",*8*/,'err',errW',',e,','err,err,e'',"s5',s6","err,"e,"3","4°,*9*/,errW',',err,','err,7,err,err,err,',"s5","s6","err'"err","f',"4,/10*/,err',e,err,'e,e',e'',''e,"s5,t"s6',',err","err'"g'"4",*11*/,err,err'',''e,','err,err,7,err',',err,s5","s6',e",''err","h",',4u,*12*/"s7",err,err,slo,err,err,errerr,err,err,err13*/"rl",'r,"s9","slO"eVTl",R"JeVeVerr",5,"eVe”14*/"r2","r2,s9,sl","e,m2m,2W',err,7,e,7,e,err,err,15*/"r4","r4,w,4»1l-zfHII-_Htw,zfIlMw,z<HH-HH_l»”“-_11_H*->r4,r4terr,r4r4,err,err,err,err,err,err16*/"r5","r5,r,r3,r5,err,r3,r5,err,err,err,err,errerr*17*/,r7","r7","r7'"r7",',err'"r7",'Y7>'',',e,'err,',err,err',err,*18*/',r9",r9","r9'"r9u,"r9u,',r9",',r9,'err,''err',',e'',err'','err,err',;inigetLength(charstrsize)(inti=0;while(stri!=,)i+;returni;)intgetLengthc(char_stackstrsize)(inti=O;vhile(stri.conlent!=,0')i+;returni;intgetstringLength(stringstr)inti=O;while(stri!=,O')i+;returni;)chargettop(charstacksize,inttop)(if(stacktop!='0')returnstacktop;elsereturnvoidpopstack(char*stack,int*pointer,inttimes)intp;fbr(inti=l;i<=times;i+)(p=*pointer;stackp='0'(*pointer)-;1voidPoPStaCkC(ChaJStaCk*stack,int*poinler,inttimes)intp;fbr(inti=l;i<=times;i+)p=*pointer;stackp.content=,0,;(*pointer)"1voidPUShStaCk(Char_stack*stack,int*pointer,char*stack_state,int*poinler_state,charstr,charsxjntx)inti=0;if(x=0)COUt<<"ttt状态"<<sx<<”进状态栈elseif(x=l)CoUtVV"状态"VVsxVV”进状态栈”;if(str!=,)(cout<<str<<"进字符栈":(*poinler)+;stack(*pointer).Content=Str;(*pointer_state)+;stack_state(*pointer_state)=sx;intgetcol(chartop)(Switch(Iop)(casereturnO;case-':return1;case'*':return2;caseV,:retum3;case'a':retum4;case'),:return5;casereturn6;casereturn7;case'i,:return8;case,E':return9;case,T':return10;case'F:return11;case,P':return12;default:cout<<"Error!Thischaracterstringisnotthisgrammer,ssentence,"<<endl;return-1;intgetraw(charraw)(switch(raw)(case'0":return0;case,:return1;case,2':return2;case,3':return3;case,4,:return4;case,5,:return5;case,6':return6;case,7,:return7;case,8':return8;case,9':return9;case,a,:return10;case,b':return11;case'c':return12;case,d':return13;case,e,:return14;case'f:return15;case'g':return16;case,h,:return17;case,i,:return18;default:cout<<"Error!Thischaracterstringisnotthisgrammer'ssentence."<<endl;return-1;chargetraw_content(stringstr)(if(str="'l")return'elseif(str="2")return'2'elseif(str="3")return3;elseif(str=,4")return'4'elseif(str="c")return'c'elseif(str=,'d")return'd'elseif(str="e")return'e'elseif(str="f')return'f;elseif(slr="g")return'g,;elseif(str="h")return'h,;elseif(str="i")return'i,;stringget_lx(intnum)switch(num)case 1:return,t,;case 2:return',t2"case 3:return"t3"case 4:return',t4"case 5:return,t5"cas

    注意事项

    本文(天津理工大学编译原理试验3:语义分析与中间代码生成.docx)为本站会员(p**)主动上传,第壹文秘仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知第壹文秘(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

    copyright@ 2008-2023 1wenmi网站版权所有

    经营许可证编号:宁ICP备2022001189号-1

    本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。第壹文秘仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知第壹文秘网,我们立即给予删除!

    收起
    展开