【问题标题】:Type error has occured : Translation capacity exceeded发生类型错误:超出翻译容量
【发布时间】:2014-01-27 17:11:15
【问题描述】:

当我运行我的示例时,出现以下类型错误:

Translation capacity exceeded.
In this scope, universe contains 21 atoms
and relations of arity 8 cannot be represented.
Visit http://alloy.mit.edu/ for advice on refactoring.

是否有任何文档如何解决它,我在书中没有找到任何内容。

谢谢。

【问题讨论】:

    标签: alloy


    【解决方案1】:

    您可以在本文的第 5 节中找到解释

    http://people.csail.mit.edu/aleks/website/papers/icse11-squander.pdf

    这是一段引述

    为了表示 k 的关系 r,Kodkod 分配了一个矩阵 size nk,其中n是宇宙中原子的数量。为了 性能原因,Kodkod 使用由索引的单个顺序数组 Java 整数,因此矩阵的大小限制为 Java 中的最大整数值 (Integer.MAX_VALUE)。

    在您的情况下,218 (37822859361) 大于 Integer.MAX_VALUE (231-1 = 2147483647)。

    【讨论】:

    • 但我的模型中没有 arity 8 的关系。
    • 你可以发布你的模型吗?
    • 这个模型真的很大,但我会发布一个稍微等价的
    • 最近的一篇文章 (stackoverflow.com/questions/22886819/refactoring-alloy-models) 解释了有时如何从量词创建这种“幻像”关系(在您的情况下,量词有 8 个变量,因此关系为 8)
    猜你喜欢
    • 2015-11-16
    • 2013-01-09
    • 2014-02-11
    • 1970-01-01
    • 1970-01-01
    • 2015-06-06
    • 2014-12-20
    • 1970-01-01
    • 2015-03-27
    相关资源
    最近更新 更多