2000字范文,分享全网优秀范文,学习好帮手!
2000字范文 > 语义分析——声明语句 赋值语句 条件语句和循环语句的翻译

语义分析——声明语句 赋值语句 条件语句和循环语句的翻译

时间:2022-04-02 19:15:27

相关推荐

语义分析——声明语句 赋值语句 条件语句和循环语句的翻译

接下来介绍各种常用语句在语义分析中如何翻译。

声明语句的翻译

程序语言中的声明语句都是给编译程序提供信息的,其作用是告知编译器把某个名字和某个类型联系起来,并为它分配相应的内存空间。

因此对声明语句一般不生成代码,只是在编译时把有关信息填入相应表格即可。

为局部名字建立符号表条目,其中包含名字的类型和分配给它的存储单元的相对地址等信息

赋值语句的翻译

简单算术表达式的赋值语句

所谓简单指不考虑数组元素、记录、函数引用等情况。

如C语言中的:

a = 1;

对应的四元式为:

(=, a, _, 1)

类型转换

有的程序设计语言允许混合运算,有的不允许。如果不允许,则发现有类型不相同的运算分量就应该报错。如果允许,就要进行隐式类型转换

控制流语句的翻译

条件语句中布尔表达式的翻译

出现在条件语句 if E then S1 else S2 中的布尔表达式E,它的作用仅在于控制对S1或S2的选择,亦即提供“真”、“假”出口。除非在条件语句之后还有对E的引用(这种情况很少),否则其值无需保留。大致翻译模板为:

其中,可以没有跳转到E.true的语句,因为在布尔语句之后便是E.true,因此只需要跳转到E.false即可。

循环语句的翻译

while,do-while语句

while语句的模板:

do-while语句的模板:

for循环

其他跳转语句

1、break

2、continue

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。