我正在尝试将Java转换为中间语言,并且正在弄清楚中间语言的工作方式。

我有原始的Java代码:http://cs.ucla.edu/classes/spring11/cs132/cs132/mj/Factorial.java

我有中间代码表示形式(VAPOR):http://cs.ucla.edu/classes/spring11/cs132/kannan/vapor-examples/Factorial.vapor

这是另一组:在Java中:http://cs.ucla.edu/classes/spring11/cs132/cs132/mj/BubbleSort.java

在VAPOR中:http://cs.ucla.edu/classes/spring11/cs132/kannan/vapor-examples/BubbleSort.vapor

我的问题是,所有VAPOR代码都具有t.0 = HeapAllocZ(x)(其中xint)。我想知道转换器如何确定堆大小需要为x大小。在Factorial.vapor中,将其设置为4。在BubbleSort.vapor中,将其设置为12

谢谢!

最佳答案

看起来HeapAlloc是基于要创建的结构的大小(假定412是字节值)。我认为查看数据结构使用的变量,并计算这些变量求和的字节数将为您分配数量。

关于java - 我们如何知道要设置多少堆?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/13483773/

10-11 03:40