发生类型错误:超出了翻译容量

时间:2014-01-27 17:11:15

标签: alloy

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

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.

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

感谢。

1 个答案:

答案 0 :(得分:3)

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

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

以下是它的引用

  

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

在您的情况下,21 8 (37822859361)大于Integer.MAX_VALUE(2 31 -1 = 2147483647)。