编译原理笔记07-中间代码生成

这篇博客详细介绍了编译原理中的中间代码生成过程,包括类型表达式、声明语句的翻译、赋值语句的翻译,特别是针对控制流语句的处理。文章通过实例解释了如何进行语法制导翻译,如LL(1)文法的验证,并讨论了回填技术在解决跳转指令目标标号不确定性问题中的应用。此外,还涉及了switch语句和过程调用语句的翻译策略。
摘要由CSDN通过智能技术生成

类型表达式

  • 基本类型是类型表达式
    • integer、real、char、boolean、type_error (出错类型)、void (无类型)
  • 可以为类型表达式命名,类型名也是类型表达式
  • 类型构造符(type constructor)作用于类型表达式可以构成新的类型表达式
    • 数组构造符array
      • 若T是类型表达式,则array ( I, T )是一个表示数组类型的表达式,该数组包含I个元素,每个元素都是T类型
    • 指针构造符pointer
      • 若T是类型表达式,则 pointer ( T ) 是一个表示指向类型T的指针类型的表达式
    • 笛卡尔乘积构造符
      • 若T1 和 T2是类型表达式,则笛卡尔乘积T1 × T2 是类型表达式
    • 函数构造符→
      • 若T1、T2、…、Tn 和R是类型表达式,则T1 × T2 ×…× Tn→ R是类型表达式(T1,T2表示函数参数类型,R表示函数返回值类型)
    • 记录构造符record
      • 若有标识符N1 、N2 、…、Nan 与类型表达式T1 、T2 、…、Tn , 则
        record ( ( N1
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

熠熠晨曦_

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值