哈工大 威海 编译原理 实验三 语义分析与中间代码生成

哈工大 威海 编译原理 实验三 语义分析与中间代码生成

ID:33744690

大小:55.50 KB

页数:6页

时间:2019-02-28

哈工大 威海 编译原理 实验三 语义分析与中间代码生成_第1页
哈工大 威海 编译原理 实验三 语义分析与中间代码生成_第2页
哈工大 威海 编译原理 实验三 语义分析与中间代码生成_第3页
哈工大 威海 编译原理 实验三 语义分析与中间代码生成_第4页
哈工大 威海 编译原理 实验三 语义分析与中间代码生成_第5页
资源描述:

《哈工大 威海 编译原理 实验三 语义分析与中间代码生成》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、哈尔滨工业大学(威海)计算机学院编译原理实验报告姓名院系计算机学院学号090410任课教师指导教师实验地点宋健二楼机房实验时间实验名称实验三语义分析及中间代码生成同组人无预习报告(对实验主要内容的认识)得分(1)通过本次试验,我应该加深对于编译原理制导方案的理解,并且加深对于语法变换的所起到的作用;(2)对于试验中要用到得中间代码的格式规范,也应该进一步的分析和掌握(3)能够很好的使用到前面开发出来的词法分析器和语法分析器,将它们与语义分析器结合起来,跟好的更系统的掌握编译原理这门专业技能(4)关于符号表以及token串表的维护,现

2、在终于使其有所作用实验内容(问题,思路,程序,结果)得分(1)开发环境:vs2010(2)输入:在运行打开的软件下(win32格式),输入相应的代码(即要进行词法分析的字符串)(比如:inta;)(3)输出:在输入字符串后,按回车键后,既可以得到相应的词法分析的结果(比如:inta的输入对应的输出如下:inta;首先对于词法分析打印出:Int---key//关键字A---str//字符串;---bor//边界符号对于语法分析:Accept//编译语句分析成功对于输入字符串的语义分析和中间代码的生成如下中间代码:)(4)在相应的运行程

3、序的文件夹中生成一个txt文件,用来存储生成的Token链表(5)系统功能:(2)开发平台(操作系统、设计语言):1、操作系统:windows72、设计语言:c++3、编译器:vs2010(3)设计方案;1)主数据流图开始词法分析Token表的生成及修改语法分析修改token表语义分析语句是否为变量声明对语句按照文法的action表进行归约加一个四元式结点向下进行语义分析生成中间代码结束2)主要数据结构:符号表、TOKEN串表等。(1)Token数据结构用类实现:symTableclasssymTable{private:char*

4、symName;char*symStyle;intsymLength;public:symTable*next;public:symTable();symTable(char*sysName,char*sysStyle,intsysLength);symTable(symTable&s);char*getName();char*getStyle();intgetLength();voidsymAdd(symTable*symFirst);voidprint();};(2)其他数据结构用结构体或者数组实现:charG[30][30];

5、//useamatrixtostoregrammarG//存放文法,用来分析作为输入intlength[30];//lengthusetostoreeachformula'slengthintnumber=0;booltempofinput[150];//bufferofinput//输入???charstr_vn[30];//putallvnintoitintsize_vn=0;charstr_vt[150];//putallvtintoitintsize_vt=0;boolfirst_vn[30][150];charbuffer

6、[50];//用来存放生成CLOSURE(I)时需要的first_set也用来读入用户的输入串^_^intbsize=0;structthri{intbeg;intnex;charch;};thritrans[200];intsize_trans=0;//定义项目集的形式structproj{intformula_numb;intpart;charexpc;};/*项目集*/projitems[200][200];intCcount=0;intsize_item[200];/*状态转换表*/structaction{charch;i

7、ntnxt_sta;};actionaction_table[200][200];intsize_act_table[200];structstr//词法string结构体{intnum;//编号stringword;//字符串内容str*next;};structaction//语法action表结构体{charsr;//移进或归约intstate;//转到的状态编号};intgo_to[46][11];//语法go_to表structike//语法分析栈结构体,双链{ike*pre;intnum;//状态intword;//符号

8、编码ike*next;};ike*stack_head,*stack_tail;//分析栈首尾指针structL//语义四元式的数据结构{intk;stringop;//操作符stringop1;//操作数stringop2;//操作

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。