我非常喜欢通过简单地列出约束然后运行Alloy Analyzer来设计Alloy模型:查找满足约束的实例。
但是我想到将这种以约束为中心的Alloy模型映射到编程语言代码可能很困难。可能不会将Alloy约束表达式一对一映射到Java语句。实际上,将Alloy约束表达式列表映射到Java代码可能非常困难。
如果Alloy表达式和编程语言代码之间存在巨大的语义/语法差距,那么Alloy的优势是否会减少?
不设计以约束为中心的Alloy模型会更好吗?是否更好地设计以算法为中心的Alloy模型(即,使Alloy模型看起来像编程语言代码),以减少语义/句法差距?
我很想听听你对此的看法。
答案 0 :(得分:1)
我的两条评论:
可以基于约束的方式进行编程。参见逻辑编程语言。
但即使您使用传统的编程语言:隐式地,模型总是在那里。它只是没有在程序代码中表达。
所以,在我看来,这个差距并没有减少Alloy的好处,并且尽可能使你的模型成为声明是明智的。