U9 语义分析和代码生成

发布时间:2023年12月20日

一、声明的处理

1、任务

分离出每一个被声明的实体,并把它们的名字填入符号表中
把被声明实体的有关特性信息尽可能多地填入符号表中

2、已声明的实体

检查对所声明的实体引用(种类,类型等)是否正确
根据实体的特征信息,例如类型,所分配的目标代码地址(可能为数据区单元地址,或目标程序入口地址)生成相应的目标代码

二、表达式的处理

类似于文法中加入动作符号进行变量的引用/运行时语义检查。
例如:
在这里插入图片描述
在这里插入图片描述

三、赋值语句的处理

分析表达式的主要目的是生成计算该表达式值的代码。通常的做法是把表达式中的操作数装载(LOAD)到操作数栈(或运行栈)栈顶单元或某个寄存器中,然后执行表达式所指定的操作,而操作的结果保留在栈顶或寄存器中。比如
在这里插入图片描述

四、控制语句的处理 控制流处理(标号/比较/跳转)

在这里插入图片描述

五、过程调用和返回 参数传递、运行栈操作

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

文章来源:https://blog.csdn.net/ning_xiao_xuan/article/details/134909543
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。