alloy

    0热度

    1回答

    我想正式确定从应用程序访问其他应用程序的数据部分的权限。首先,我创建请求签名(例如APP1想读APP2的DATASECTION)和权限(请求A是MAY_PREVENT) sig request{ from: OS_App, to: Memory, act: action } sig permission{ req: request, per: status }

    0热度

    1回答

    我在Alloy中编写了下面的代码。我想知道为什么它没有找到一个实例,因为在代码中根本没有任何事实。 abstract sig TaskStatus {} one sig Completed extends TaskStatus {} one sig Waiting extends TaskStatus {} one sig OnGoing extends TaskStatus {} si

    0热度

    1回答

    下午好, 我在处理无界通用量词时遇到了Alloy问题。正如丹尼尔杰克逊的“软件抽象”一书(第5.3节“无界通用量词”)中所解释的,Alloy在通用量词和断言检查方面有一个细微的限制。合金产生在某些情况下的寄生反例,例如下一个检查集合下联盟(在前述书示出)封闭: sig Set { elements: set Element } sig Element {} assert Clos

    0热度

    1回答

    本书软件抽象有一个模型化一堆网络过程的例子。每个进程都连接到另一个进程。描绘此,在一张纸张,我画此图:我解释为图作为 :每个过程有一个后继过程。 但后来我想到:这是不对的。如果它是一个UML模型,那么它就是对的,但它不是合金模型的正确描述。 经过一番思考,我得出了这样的描述:过程有一组(原子)值;每个值代表网络中的一个进程。 succ有一组配对,每对代表一个过程到另一个过程的连接。 过程中的每个值

    0热度

    1回答

    以下合金代码说,每间客房都有一组键: sig Key {} sig Room { keys: set Key } 的keys关系需要被约束。就目前而言,它允许这样的实例:密钥K1用于一堆房间。哎哟!我们不希望这样。我们希望每个密钥只能与一个房间一起使用。下面是说明有效的情况下,宇宙的图形(和我们实际要允许情况下的子集): 集,我们其实是想用这种合金代码是很好的表达实例: Roo

    0热度

    1回答

    请考虑下面的Alloy模型,这是一个剥离的学生提交的本质版本。这个问题是一个排课系统,学生想说没有冲突(在同一时间在同一个地方的两个不同的课程会): abstract sig Room{} one sig S20, S30, S50 extends Room{} abstract sig Period{} one sig Mon, Tue, Wed, Thu, Fri extends Pe

    -3热度

    1回答

    我正在研究合金生成的实例包含类似编程语言(例如签名,字段,关系或元组)的实体如java,c等)。 例如,对于变量,常量等的关系运算(例如等于,大于,小于或等等),有算术运算的实体(例如Add,Sub,Multiply等)上。 下面显示模型解决方案(找到的实例)的树视图和图视图示例(最大两个整数算法)。这些数字是从Alloy Analyzer GUI中提取的。 我的问题是有一个快速的方法到合金实例转

    0热度

    1回答

    163页的书Software Abstractions具有这一显着的声明: 描述的声明风格是非常强大的,但它有一个缺点 :无意过约束。 哇! “无意的过度约束”是否在所有声明性语言中都存在?例如,XML Schema中是否会发生无意的过度约束? SQL中发生无意的过度约束吗? 换句话说,Alloy是特有的“无意的过度约束”问题,还是它广泛适用于所有的声明性语言?如果是后者,我将非常感谢解释。

    0热度

    1回答

    我正在学习Alloy,我试图指定一个简单的数组列表。我的规范基于Alloy的书籍和在线教程的第一个例子。我只是试图测试它的基本特征,而我想要做的事情非常简单,但不起作用,我不知道为什么,因为它与示例非常相似。这是我的规格: module FileSystem/Lists[A] open util/ordering[List] sig List { content: Int ->on

    0热度

    1回答

    我有一个铝合金的功能在我的模型,如: fun whichFieldIs[p:Program, fId:FieldId, c:Class] : Field{ {f:Field | f in c.*(extend.(p.classDeclarations)).fields && f.id = fId} } 此功能工作在我的模型,并可以返回一组元素,如:虽然功能回报 {场$ 0时,现场