你好我正在寻找一些方向或参考选项。 我正在构建一个编译器,但我希望它能处理异构类型(如C struct)。阵列是同质的。 我想知道这个理论,我知道已经有技术和方法,比如修改变量和东西表中的东西。我在Louden的书中找到了一些东西,但它并不完整=(解释它留在空中。
我一直在谷歌搜索,但我不知道如何谷歌这.... [/ p>
我很欣赏如何找到现有理论和代码生成等方面的一些方向。
语言为STATIC TYPED
答案 0 :(得分:1)
如果foo
是包含a
,b
和c
类型ta
,tb
和{{1}字段的记录类型然后,tc
的值可以表示为大小为foo
的内存块。
如果你的运行时环境(垃圾收集器,反射设施)需要为每个值存储额外的信息,你也需要为此保留空间。
现在,如果您的sizeof(ta) + sizeof(tb) + sizeof(tc)
类型值x
并且可以访问,例如字段foo
(通过编写b
或您的语言用于字段访问的语法),可以将其编译为将x.b
添加到sizeof(tb)
的地址,然后读取值该地址的x
类型。
如果记录的类型具有不同的大小,您可能还想添加一些填充。
基本上就是这一切。