首页 语义分析器

语义分析器

举报
开通vip

语义分析器延安大学计算机学院实验报告专用纸实验室:机号:实验日期:年月日学号1060915014009姓名徐君班级软件15课程名称实验项目名称任课教师指导教师实验组别第组同组者教师评语及成绩:实验成绩:教师签字:(请按照实验报告的有关要求书写,一般必须包括:1、实验目的;2、实验内容;3、实验步骤与方法;4、实验数据与程序清单;5、出现的问题及解决方法;6、实验结果、结果分析与体会等内容。一、实验目的:通过上机实习,加深对语法制导翻译原理的理解,掌握将语法分析所识别的语法成分变换为中间代码的语...

语义分析器
延安大学计算机学院实验 报告 软件系统测试报告下载sgs报告如何下载关于路面塌陷情况报告535n,sgs报告怎么下载竣工报告下载 专用纸实验室:机号:实验日期:年月日学号1060915014009姓名徐君班级软件15课程名称实验项目名称任课教师指导教师实验组别第组同组者教师评语及成绩:实验成绩:教师签字:(请按照实验报告的有关要求 关于书的成语关于读书的排比句社区图书漂流公约怎么写关于读书的小报汉书pdf 写,一般必须包括:1、实验目的;2、实验内容;3、实验步骤与方法;4、实验数据与程序清单;5、出现的问题及解决方法;6、实验结果、结果分析与体会等内容。一、实验目的:通过上机实习,加深对语法制导翻译原理的理解,掌握将语法分析所识别的语法成分变换为中间代码的语义翻译方法.一、实验原理(可以流程图的形式出现,加以文字说明)采用递归下降语法制导翻译法,对算术 关于同志近三年现实表现材料材料类招标技术评分表图表与交易pdf视力表打印pdf用图表说话 pdf 达式、赋值语句进行语义分析并生成四元式序列。算法思想1设置语义过程(1)emit(char*result,char*argl,char*op,char*ag2)该函数功能是生成一个三地址语句送到四元式表中。四元式表的结构如下:struct{charresult[8];charag1[8];charop[8];charag2[8];延安大学计算机学院实验报告附页学号姓名班级实验名称}quad[20];(2)char*newtemp()该函数回送个新的临时变量名,临时变量名产生的顺序为T1,T2,„.Char*newtemp(void){char*p;charm[8];p=(char*)malloc(8);k++;itoa(k,m,10);strcpy(p+l,m);p[0]='t';return(p);}三、实验步骤(介绍关键的步骤,至少10步,并简要说明其工作原理)#include"stdio.h"#include"string.h"#include"stdlib.h"charprog[100],token[8],ch;char*rwtab[6」={begin,if,then,while,do,end};intsyn,p,m,n,sum,q;intkk;struct{charresult1[8];charagll[8」;charop1[8];charag21[8];}quad[20];char*factor();char*expression();intyucu();char*term();intstatement();intlrparser();char*newtemp();scaner();emit(char*result,char*ag1,char*op,char*ag2);main(){intj;q=p=kk=O;printf("\npleaseinputastring(endwith");do{scanf("%c",&ch);prog[p++]=ch;}while(ch!='#');p=0;scaner();lrparser();if(q>19)printf("tolongsentense!\n");elsefor(j=0;j='a'))||((ch<='Z')&&(ch>='A'))){wh订e(((ch<='z')&&(ch>='a'))||((ch<='Z')&&(ch>='A'))||((ch>='0')&&(ch<='9'))){token[m++]=ch;ch=prog[p++];}p__;syn=10;token[m++]='\0';for(n=0;n<6;n++)if(strcmp(token,rwtab[n])=0){syn=n+1;break;}}elseif((ch>='0')&&(ch<='9')){wh订e((ch>='0')&&(ch<='9')){sum=sum*10+ch-'0';ch=prog[p++];}p__;syn=11;}elseswitch(ch){case'<':m=0;ch=prog[p++];辻(ch='>‘){syn=21;}elseif(ch='='){syn=22;}else{syn=20;P__;}break;case'>':m=0;ch=prog[p++];f(ch='=‘){syn=24;}else{syn=23;p__;}break;case':':m=0;ch=prog[p++];f(ch='=‘){syn=18;}else{syn=17;P__;}break;case'+':syn=13;break;case'-':syn=14;break;case'*':syn=15;break;case'/':syn=16;break;case'(':syn=27;break;case')':syn=28;break;case'=':syn=25;break;case';':syn=26;break;case'#':syn=0;break;default:syn=-1;break;}}emit(char*result,char*agl,char*op,char*ag2){strcpy(quad[q].resultl,result);strcpy(quad[q].agll,agl);strcpy(quad[q].opl,op);strcpy(quad[q].ag21,ag2);q++;}四、实验过程原始记录(数据、图表、计算等)实验的输入和输出:输入是语法分析提供的正确的单词串,输出为三地址指令形式的四元式序列。例如:对于语句串begina:=2+3*4;x:=(a+b)/cend#输出的三地址指令如下:(1)tl=3*4(2)t2=2+tl(3)a=t2(4)t3=a+b(5)t4=t3/c(6)x=t4)leaseinputastring:begina:=2+3«4;x:=/cendtttl=3*4t2=2+tla=t2t3=a+bt4=t3/cx=t4*ressanykeytocontinue五、实验结果及分析,以及心得体会通过试验结果可以看出,这个程序实现了输出为三地址指令形式的四元式序列。通过上机实验,加深了对语法制导翻译原理的理解,掌握将语法分析所识别的语法成分变换为中间代码的语义翻译方法。以及还复习了对VC的应用。
本文档为【语义分析器】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
is_072127
暂无简介~
格式:doc
大小:15KB
软件:Word
页数:8
分类:
上传时间:2021-11-18
浏览量:0