无意的过度约束:所有陈述式描述风格的缺点?

时间:2017-02-24 19:13:50

标签: alloy

本书Software Abstractions的第163页有这个非凡的陈述:

  

声明式描述非常强大,但它有一个   缺点:无意中过度约束。

哇!

“无意中过度约束”是否存在于所有声明性语言中?例如,XML Schema中是否发生了无意的过度约束? SQL中是否会发生无意的过度约束?

换句话说,是合金特有的“无意的过度约束”问题,还是广泛适用于所有声明性语言?如果是后者,我将非常感谢解释。

1 个答案:

答案 0 :(得分:1)

它是联合带来的好处的另一面。在编程语言中,您不能通过说"输出是输入的排列和元素按顺序排列",但你可以说在允许的规范语言中。这提供了很多功能,特别是通过实现关注点分离,它可以让您从最小限制开始,然后增长它们。但是有一个缺点:添加太多限制,你最终可能会错误(或者更糟糕的是,某些东西比你想象的要强一些)。合金的不良核心设施有助于解决这个问题,但并没有完全解决问题。