Alloy 如何将以约束为中心的合金模型映射到编程语言代码?

Alloy 如何将以约束为中心的合金模型映射到编程语言代码?,alloy,Alloy,我非常喜欢通过简单地列出约束,然后运行Alloy Analyzer来设计Alloy模型:找到满足约束的实例 但我突然想到,将这种以约束为中心的合金模型映射到编程语言代码可能很困难。可能不会有合金约束表达式到Java语句的一对一映射。事实上,将Alloy约束表达式列表映射到Java代码可能相当困难 如果Alloy表达式和编程语言代码之间存在巨大的语义/语法鸿沟,那么Alloy的好处是否会减少 不设计以约束为中心的合金模型会更好吗?是否应该设计以算法为中心的合金模型(即,使合金模型看起来像编程语言代

我非常喜欢通过简单地列出约束,然后运行Alloy Analyzer来设计Alloy模型:找到满足约束的实例

但我突然想到,将这种以约束为中心的合金模型映射到编程语言代码可能很困难。可能不会有合金约束表达式到Java语句的一对一映射。事实上,将Alloy约束表达式列表映射到Java代码可能相当困难

如果Alloy表达式和编程语言代码之间存在巨大的语义/语法鸿沟,那么Alloy的好处是否会减少

不设计以约束为中心的合金模型会更好吗?是否应该设计以算法为中心的合金模型(即,使合金模型看起来像编程语言代码),以减少语义/语法差距

我很想听听你对此的看法。

我有两条评论:

  • 以基于约束的方式编程是可能的。参见逻辑编程语言

  • 但是,即使您使用传统的编程语言:隐式地,模型始终存在。它只是没有在程序代码中表达出来

  • 所以,在我看来,这个差距并没有减少Alloy的好处,让您的模型尽可能具有声明性是明智的