好文档 - 专业文书写作范文服务资料分享网站

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

天下 分享 时间: 加入收藏 我要投稿 点赞

实用标准文案

上海电力学院

编译原理 精彩文档课程实验报告

实验名称: 实验三 自下而上语法分析及语义分析 院 系: 计算机科学与技术学院 专业年级: 学生姓名: 学号:

指导老师:

实验日期:

实用标准文案

实验三自上而下的语法分析

一、实验目的:

通过本实验掌握LR分析器的构造过程,并根据语法制导翻译,掌握属性文法的自下而上计算的过程。 二、实验学时:

4学时。 三、实验内容

根据给出的简单表达式的语法构成规则(见五),编制LR分析程序,要求能对用给定的语法规则书写的源程序进行语法分析和语义分析。

对于正确的表达式,给出表达式的值。 对于错误的表达式,给出出错位置。 四、实验方法

采用LR分析法。

首先给出S-属性文法的定义(为简便起见,每个文法符号只设置一个综合属性,即该文法符号所代表的表达式的值。属性文法的定义可参照书137页表6.1),并将其改造成用LR分析实现时的语义分析动作(可参照书145页表6.5)。

接下来给出LR分析表。 然后程序的具体实现:

精彩文档

实用标准文案

? LR分析表可用二维数组(或其他)实现。 ? 添加一个val栈作为语义分析实现的工具。 ? 编写总控程序,实现语法分析和语义分析的过程。

注:对于整数的识别可以借助实验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

状态 i 0 1 2 3 4 5 S5 S5 + S6 R3 R6 R8 - S12 R3 R6 R8 ACTION(动作) GOTO(转换) * S7 R6 R8 / S13 R6 R8 ( S4 S4 ) R3 R6 R8 # acc R3 R6 R8 E 1 8 T 2 2 F 3 3 精彩文档

实用标准文案

6 7 8 9 10 11 12 13 14 15 S5 S5 S5 S5 S6 R1 R4 R7 R2 R5 R12 R1 R4 R7 R2 R5 S7 R4 R7 S7 R5 S13 R4 R7 S13 R5 S4 S4 S4 S4 S11 R1 R4 R7 R2 R5 R1 R4 R7 R2 R5 9 14 3 10 3 15 五、处理程序例和处理结果例

示例1:20133191*(20133191+3191)+ 3191#

精彩文档

实用标准文案

六、源代码

【cifa.h】

//cifa.h

#include using namespace std;

//单词结构定义 struct WordType{

int code;

精彩文档

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

实用标准文案上海电力学院编译原理精彩文档课程实验报告实验名称:实验三自下而上语法分析及语义分析院系:计算机科学与技术学院专业年级:学生姓名:
推荐度:
点击下载文档文档为doc格式
67ww51n7ph1qw0b8cvba7dd7d92wae01amg
领取福利

微信扫码领取福利

微信扫码分享