编译原理复习笔记第六章 中间代码生成

各类语句的翻译

6-1 类型表达式

  1. 基本类型是类型表达式
  2. 可以为类型表达式命名,类型名也是类型表达式
  3. 将类型构造符作用于类型表达式可以构成新的类型表达式
    1)数组构造符
    int[2] [3] = array(2,array(3,int))
    2)指针构造符
    T是类型表达式,pointer(T)是表示指针的类型表达式
    3)笛卡尔乘积构造符
    4)函数构造符
    5)记录构造符
    在这里插入图片描述

6-2 声明语句的翻译——自顶向下

  1. 收集标识符的类型,并分类相对地址
  2. 根据类型判断宽度
  3. 名字的类型和相对地址信息保存在符号表中
  4. 两个例子:有了前面的基础这里还是比较好推断的
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
  5. 在程序中,标识符的出现是定义性、使用性的。

6-3 简单赋值语句的翻译——自底向上

  1. 赋值语句的基本文法:
    在这里插入图片描述
  2. 赋值语句翻译的主要任务:生成对表达式求值的三地址码
    在这里插入图片描述
  3. 翻译与增量翻译:
    构造自动机,判断是移入还是规约,并根据action进行记录。
    采用自底向上进行规约。
    在这里插入图片描述
  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值