欢迎来到天天文库
浏览记录
ID:30225977
大小:535.00 KB
页数:17页
时间:2018-12-27
《编译原理实验三-自下而上语法分析报告及语义分析报告.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->i状态ACTION(动作)
3、GOTO(转换)i+-*/()#ETF0S5S41231S6S12acc2R3R3S7S13R3R33R6R6R6R6R6R64S5S48235R8R8R8R8R8R86S5S4937S5S4108S6R12S119R1R1S7S13R1R110R4R4R4R4R4R411R7R7R7R7R7R712S5S414313S5S41514R2R2S7S13R2R215R5R5R5R5R5R5五、处理程序例和处理结果例精彩文档实用标准文案示例1:20133191*(20133191+3191)+3191#六、源代码【cifa.h】//cifa.h#includeusingnamesp
4、acestd;//单词结构定义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;intlineName[8];stringtableData[16][
5、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;m6、][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";tableData[3][3]="R6";tableData[3][4]="R6";tableData[3][6]="R6";tabl7、eData[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]
6、][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";tableData[3][3]="R6";tableData[3][4]="R6";tableData[3][6]="R6";tabl
7、eData[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]
此文档下载收益归作者所有