编译原理实验三-自下而上语法分析及语义分析.docx

编译原理实验三-自下而上语法分析及语义分析.docx

ID:34014518

大小:535.00 KB

页数:17页

时间:2019-03-03

编译原理实验三-自下而上语法分析及语义分析.docx_第1页
编译原理实验三-自下而上语法分析及语义分析.docx_第2页
编译原理实验三-自下而上语法分析及语义分析.docx_第3页
编译原理实验三-自下而上语法分析及语义分析.docx_第4页
编译原理实验三-自下而上语法分析及语义分析.docx_第5页
资源描述:

《编译原理实验三-自下而上语法分析及语义分析.docx》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、.上海电力学院编译原理课程实验报告实验名称:实验三自下而上语法分析及语义分析院  系: 计算机科学与技术学院 专业年级: 学生姓名: 学号:指导老师:实验日期:...实验三自上而下的语法分析一、实验目的:通过本实验掌握LR分析器的构造过程,并根据语法制导翻译,掌握属性文法的自下而上计算的过程。二、实验学时:4学时。三、实验内容根据给出的简单表达式的语法构成规则(见五),编制LR分析程序,要求能对用给定的语法规则书写的源程序进行语法分析和语义分析。对于正确的表达式,给出表达式的值。对于错误的表达式,给出出错位置。四、实验方法采用LR分析法。首先给出S-属性文法的

2、定义(为简便起见,每个文法符号只设置一个综合属性,即该文法符号所代表的表达式的值。属性文法的定义可参照书137页表6.1),并将其改造成用LR分析实现时的语义分析动作(可参照书145页表6.5)。接下来给出LR分析表。然后程序的具体实现:lLR分析表可用二维数组(或其他)实现。l添加一个val栈作为语义分析实现的工具。...l编写总控程序,实现语法分析和语义分析的过程。注:对于整数的识别可以借助实验1。五、文法定义简单的表达式文法如下:(1)E->E+T(2)E->E-T(3)E->T(4)T->T*F(5)T->T/F(6)T->F(7)F->(E)(8)F

3、->i状态ACTION(动作)GOTO(转换)i+-*/()#ETF0S5S41231S6S12acc2R3R3S7S13R3R33R6R6R6R6R6R64S5S48235R8R8R8R8R8R86S5S4937S5S4108S6R12S119R1R1S7S13R1R110R4R4R4R4R4R411R7R7R7R7R7R712S5S414313S5S41514R2R2S7S13R2R215R5R5R5R5R5R5五、处理程序例和处理结果例...示例1:20133191*(20133191+3191)+3191#六、源代码【cifa.h】//cifa.h#i

4、ncludeusingnamespacestd;//单词结构定义structWordType{intcode;stringpro;};//函数声明...WordTypeget_w();voidgetch();voidgetBC();boolisLetter();boolisDigit();voidretract();intReserve(stringstr);stringconcat(stringstr);【Table.action.h】//table_action.hclassTable_action{introw_num,line_num;

5、intlineName[8];stringtableData[16][8];public:Table_action(){row_num=16;line_num=8;lineName[0]=30;lineName[1]=7;lineName[2]=13;lineName[3]=8;lineName[4]=14;lineName[5]=1;lineName[6]=2;lineName[7]=15;lineName[8]=0;for(intm=0;m

6、ableData[0][0]="S5";tableData[0][5]="S4";tableData[1][1]="S6";tableData[1][2]="S12";tableData[1][7]="acc";tableData[2][1]="R3";tableData[2][2]="R3";tableData[2][3]="S7";tableData[2][4]="S13";tableData[2][6]="R3";tableData[2][7]="R3";tableData[3][1]="R6";...tableData[3][2]="R6";table

7、Data[3][3]="R6";tableData[3][4]="R6";tableData[3][6]="R6";tableData[3][7]="R6";tableData[4][0]="S5";tableData[4][5]="S4";tableData[5][1]="R8";tableData[5][2]="R8";tableData[5][3]="R8";tableData[5][4]="R8";tableData[5][6]="R8";tableData[5][7]="R8";tableData[6][0]="S5";tableData[6][5]

8、="S4";tableData[7][

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

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

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