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

语义分析实验报告

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

云南大学编译原理实验报告

实验题目:学 院:专 业:学 号:姓 名:

语义分析 信息学院

计算机科学与技术 刘继远

页脚内容

10

20091060064 语

目录

一、实验目的 ...................................................... 0 二、实验内容 ...................................................... 0 三、源程序分析 .................................................... 2

1、程序采用的BNF ............................................... 2 2、根据语义要求得到对应的翻译模式............................... 3 3、实现原理..................................................... 4 4、文法的属性分析............................................... 4 5、过程设计..................................................... 5 6、子程序说明................................................... 6 四、设计的基本思想(包括修改之后的属性文法、属性类型分析、翻译模式) .................................................................. 6

1、增加除法运算................................................. 7 2、禁止同名重复声明............................................. 8 五、结果及分析 .................................................... 8

一、实验目的

进一步理解递归下降分析原理和实现方法,理解语义分析的基本机制,掌握语义子程序的构造方法。

二、实验内容

将带变量声明的表达式翻译为四元式序列,其中包括以下要求: 非终结符号D实现定义两种类型int, real变量的声明; 非终结符号S实现变量之间的*,+,: =(赋值运算)

页脚内容

0

两个关键字 int 和real

变量之间的*,+,: =(赋值) 运算只能使用声明过的变量,所以要检查使用的变量是否声明过。

对每个*,+,: =(赋值) 运算生成一条四元式如(*,A,B,T1),其中T1是临时变量

*优先级别高于+,*满足左结合规则

页脚内容

10

三、源程序分析

这是一个简单的包含词法、语法、语义分析的程序:语义分析.h和语义分析.cpp。 实现的基本原理是自顶向下分析,单遍扫描,以语法分析为核心,调用词法分析,并实现语义分析。

1、程序采用的BNF P→ DS. D→B; D D→ε

B→int L | real L L→id | L,id S→ V := E H H→;S | ε E→E+T | T T→T*F|F F→( E ) F→id V→id

消除左递归之后的等价文法start→ DS. D→B; D D→ε

B→int L | real L L→id A A→ ,idA A→ε

页脚内容

10

S→ V := E H H→;S | ε E→T R R→+T R R→ ε T→F P P→* F P P→ε F→( E ) F→id V→id

2、根据语义要求得到对应的翻译模式 start→ DS. D→ B; D D→ε

B→ int L { L.type := int } | real L { L.type := real } L→ id { A.Type := L.type enter(v.entry, L.type)}A A→ ,idA { A1.Type := A.type enter(v.entry,A.type)} A→ε

S→ V := E { gen( \ H→;S | ε

E→T { R.i:=T.place} R {E.place:=R.s}

R→+T { R1.i:= newtemp; gen( \{R.s:= R1.s; } R→ ε {Rs=R.i}

T→F { P.i:=F.place} P { T.place:=P.s}

P→* F { p1.i:= newtemp; gen( \P.i, F.place , T) } P {P.s:=

10

页脚内容

语义分析实验报告

语云南大学编译原理实验报告实验题目:学院:专业:学号:姓名:语义分析信息学院计算机科学与技术刘继远页脚内容10
推荐度:
点击下载文档文档为doc格式
5xt433cs224qfr01784a35m4y31es801582
领取福利

微信扫码领取福利

微信扫码分享