欢迎来到天天文库
浏览记录
ID:6740014
大小:40.50 KB
页数:3页
时间:2018-01-24
《简单语义分析扩展实验说明》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、简单语义分析扩展实验一、实验目的和内容进一步理解递归下降分析原理和实现方法,理解语义分析的基本机制,掌握语义子程序的构造方法。二、扩展要求1.增加乘法*和除法/运算l*,/优先级别高于+,*和/满足左结合规则l对包含除法运算的表达式生成对应的四元式2.禁止同名重复声明,所以登记符号之前要检查有没有同名变量声明过三、提交实验提交内容:(1)纸质版的实验报告;(2)修改之后、并且编译通过的程序代码。可选的扩展可以进行如语法错误处理,二元运算时进行类型匹配检查等等。四、已知条件提供了C语言版本的语义程序“语义分析.
2、cpp”、“语义分析.h”。“语义分析.cpp”程序实现对下面文法的语义分析。P→DS.D→B;DD→εB→intL
3、realLL→id
4、L,idS→V:=EHH→;S
5、εE→E+T
6、TT→(E)T→idV→id语义包括l非终结符号D实现定义两种类型int,real变量的声明;l非终结符号S实现变量之间的+,:=(赋值运算)l两个关键字int和reall变量之间的+,:=(赋值)运算只能使用声明过的变量,所以要检查使用的变量是否声明过。l对每个+,:=(赋值)运算生成一条四元式如(+,A,B,T1),其中T1
7、是临时变量l例输入reala,b;intc,d;c:=c+d+b;d:=b+a.则输出(+,d,b,T101)(+,c,T101,T102)(:=,T102,,c)(+,b,a,T103)(:=,T103,,d)例输入reala,b;intc,d,a;c:=c+d+b;d:=b+a.则语义分析要能识别出重复申明错reala,b;intc,d;f:=c+d+b;d:=b+a.则语义分析要能识别没有申明使用标识符错四、提示P→DS.D→B;DD→εB→intL
8、realLL→id
9、L,idS→V:=EHH→;S
10、
11、εE→E+T
12、TT→T*F
13、FF→(E)F→idV→id
此文档下载收益归作者所有