记录类型中间代码生成

时间:2010-11-14 03:23:53

标签: compiler-construction types compiler-theory

你好我正在寻找一些方向或参考选项。 我正在构建一个编译器,但我希望它能处理异构类型(如C struct)。阵列是同质的。 我想知道这个理论,我知道已经有技术和方法,比如修改变量和东西表中的东西。我在Louden的书中找到了一些东西,但它并不完整=(解释它留在空中。

我一直在谷歌搜索,但我不知道如何谷歌这.... [/ p>

我很欣赏如何找到现有理论和代码生成等方面的一些方向。

语言为STATIC TYPED

1 个答案:

答案 0 :(得分:1)

如果foo是包含abc类型tatb和{{1}字段的记录类型然后,tc的值可以表示为大小为foo的内存块。

如果你的运行时环境(垃圾收集器,反射设施)需要为每个值存储额外的信息,你也需要为此保留空间。

现在,如果您的sizeof(ta) + sizeof(tb) + sizeof(tc)类型值x并且可以访问,例如字段foo(通过编写b或您的语言用于字段访问的语法),可以将其编译为将x.b添加到sizeof(tb)的地址,然后读取值该地址的x类型。

如果记录的类型具有不同的大小,您可能还想添加一些填充。

基本上就是这一切。