电脑桌面
添加小米粒文库到电脑桌面
安装后可以在桌面快捷访问

完整版语义分析试验报告文档良心出品VIP免费

完整版语义分析试验报告文档良心出品_第1页
1/13
完整版语义分析试验报告文档良心出品_第2页
2/13
完整版语义分析试验报告文档良心出品_第3页
3/13
软件学院实验卡和实验报告学号:xxxxxxxxxxx姓名:xxx年级专业班级:xxxxxxxxxxxxxxxxxxxxxx实验室组别: __ __ 实验日期:2xxx 年xx 月 xxx 日课程名称编译原理实验课时4 实验名称和序号语义分析4 同组者姓名实验目的通过上机实验,加深对语法制导翻译的理解,掌握将语法分析所识别的语法成分变换为中间代码的语义翻译方法。实验环境(1)软件环境: Microsoft Visual Studio 6.0;(2)硬件环境: Windows 2000操作系统。实验内容和原理对给定的程序通过语义分析器能够判断语句串是否正确。正确则输出三地址指令形式的四元式代码,错误则抛出错误信息。实验步骤方法关键代码(1)输入待分析的字符串。语法如下:a.关键字: begin,if,then,while,do,end. b.运算符和界符::= + - * / < <= > >= <> = ; ( ) # c.其他单词是标识符(ID) 和整形常数 (NUM) :ID=letter(letter|digit)*,NUM=digitdigit* d.空格由空白、制表符和换行符组成。空格一般用来分隔ID、NUM 、运算符、界符和关键字,词法分析阶段通常被忽略。(2)扫描字符串,采用递归向下进行分析。主要函数如下:a.scaner() //词法分析函数,char token[8] 用来存放构成单词符号的字符串; b.parser() //语法分析, 在语法分析的基础上插入相应的语义动作:将输入串翻译成四元式序列。只对表达式、赋值语句进行翻译。c. emit(char *result,char *arg1,char *op,char *ag2)//该函数功能是生成一个三地址语句返回四元式表中。d. char *newtemp() //该函数返回一个新的临时变量名,临时变量名产生的顺序为T1,T2, ⋯。( ( 接上页 ) 实验步骤方法关键代码四元式表的结构如下:struct {char result[8]; char ag1[8]; char op[8]; char ag2[8]; }quad[20]; (3)输出为三地址指令形式的四元式序列。例如:语句串begin a:=2+3*4;x:=(a+b)/c;end#,输出的三地址指令如下:t1=3*4 t2=2+t1 a=t2 t3=a+b t4=t3/c x=t4 测试记录分析结论对于正确的语句串,例如:begin a:=2+3*4;x:=(a+b)/c; end#,运行结果如图:对于缺少赋值符号、 “end ”、“begin ”、“(”、“)”等均可做出错误判断并给出相应提示。小结实现了输出为三地址指令形式的四元式序列。通过上机实验 ,加深了对语法制导翻译原理的理解 ,掌握将语法分析所识别的语法成分变换为中间代码的语义翻译方法。加深了对 C++ 语言的用途的理解。以下由实验教...

1、当您付费下载文档后,您只拥有了使用权限,并不意味着购买了版权,文档只能用于自身使用,不得用于其他商业用途(如 [转卖]进行直接盈利或[编辑后售卖]进行间接盈利)。
2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。
3、如文档内容存在违规,或者侵犯商业秘密、侵犯著作权等,请点击“违规举报”。

碎片内容

完整版语义分析试验报告文档良心出品

确认删除?
VIP
微信客服
  • 扫码咨询
会员Q群
  • 会员专属群点击这里加入QQ群
客服邮箱
回到顶部