我正在学习软件工程课程,在那里我看到了 JML 的用法。这是一段示例代码:
//@ requires f >= 0.0
public float sqrt(float f) {
return f/2;
}
它说正式的 JML 规范是可执行的!
我的问题是,当我们使用 f=-4 调用这个 sqrt 函数时,这段代码是否给出错误或抛出异常或给出任何警告?我在我的电脑上试了一下,效果很好,打印出-2。那么JML可执行是什么意思呢?为什么我们不只使用评论来做到这一点?谁能解释一下?
谢谢