我正在尝试Michael Sperberg-McQueen的《合金人文》教程中的材料,该教程可在AlloyTools网站上链接。运行您好世界示例http://blackmesatech.com/2013/07/alloy/examples/helloworld.als,我收到以下错误消息:
发生语法错误: 无法扩展子集签名“ this / creator”签名只能扩展顶级签名或子签名。
相关的行是:
sig res {}
sig terra, caelum extends res {}
sig creator in res {
creavit : set res
}
sig Deus extends creator {}{
creavit = terra + caelum
}
我正在使用Alloy Analyzer 4.2_2015-02-22。
我可以通过更改以下内容来纠正错误:
sig creator in res
到
sig creator extends res
但是我想了解为什么原始代码会出现语法错误(大概可以在早期版本的Alloy中使用-如果有意将代码设计为会产生错误的错误,我将继续努力以了解目的,如果不是,我想了解为什么以前有效的代码不再有效。)