它在Eiffel和Spec#旁边的Wikipedia上被列为具有本机DbC支持的语言,但我在文档或测试套件中找不到任何提及。
答案 0 :(得分:5)
查看Block Phasers,特别是PRE
和POST
版本。我没有使用它们,自从我读埃菲尔书以来已有25年了,但它们对我来说很重要。
在S04-phasers/pre-post.t中测试了PRE
和POST
阶段。我看到至少有一个错误TODO。
如果您查看文档,试验它们(可能使用an online P6 evaluator)并报告回来,那么我们可以看到您对它们的看法,听听您是否遇到过TODO的bug会很棒或任何其他人,并决定做什么:
维基百科页面显示它列出了“本地实现大多数DbC功能的语言”。据推测,“最”限定词是主观的。 P6本机实现所有(或“大多数”)DbC功能吗?如果没有,它可能需要从维基百科页面中删除。
除非我们认为P6确实DbC声称是假的,否则我们可能需要将'DbC'和'按合同设计'添加到doc和doc索引中。 (据推测你搜索了其中一个或两个,没找到匹配,这就是导致你认为找不到它们的原因,对吧?)
我们还需要PRE
和POST
的示例,无论它们是否被正式视为DbC功能。但我们已经知道,从某种意义上来说,尽管很多人都有贡献,但是P6已经消除了wzoo,其中大部分仍未被记录为官方p6doc的一部分。还有很多事要做!如果你能想出一些非常好的,使用PRE
和POST
的简单例子,也许是根据你在烤架测试中看到的那样开发的,这将是非常壮观的。 :)