可生成的数组字段是否总是属于同一个 CFS?如果列表字段中的一个具有约束,而另一个字段具有不同的约束并且它们未连接。这两个字段是否属于同一个 CFS?
问问题
87 次
2 回答
0
这个问题并不完全清楚,但这里试图回答:
如果这是一个包含多个字段的结构列表,则不同的字段仅在连接时才属于同一个 CFS(例如,l[0].x 和 l[0].y 只有在存在约束时才属于同一个 CFS连接它们)。
假设问题涉及同一列表路径的不同索引(例如 l[0].x 和 l[1].x,或 m[0] 和 m[1]),那么我们需要区分静态和运行时考虑因素:
静态地,两条路径都被认为属于同一个 CFS。例如,ICFS 分析假设,因此“keep x < f(m[0]); keep m[1] < g(x)”将创建一个 ICFS。
在运行时,出于性能原因,IntelliGen 会尝试逐一解决列表项(就好像它们位于不同的 CFS 中一样)。但是,当列表项连接(直接连接或连接到不同的变量)时,在 IntelliGen 中称为“花边”,它们确实被解决为一个 CFS,它可能非常大。
有关更多详细信息,我建议阅读 IntelliGen 用户指南中的第 4.3 节(“避免列表元素之间的依赖关系”)。
于 2016-02-16T09:41:51.273 回答
0
如果字段未连接,则每个字段将位于不同的 CFS 上。
于 2016-02-08T09:35:17.540 回答