2
A
回答
3
伪代码,是,定义,而不是正式的代码。使用伪代码来定义一个C#方法的先决条件的一个例子是:
// Precondition: Object must have been initialized by calling init() or by
// manually setting properties X and Y such that X.Foo >= Y.Bar.
public void doUsefulWork() {
...
}
显然,因为伪代码是不是正式的,它不能被由编译器验证。
- 这是用户以确保前提条件得到满足的方法的职责,
- 它的开发商方法有义务承认改变的前提条件是(通常)一个突破的变化。
3
我在这里看到两种可能性:
如果你可以制定你的条件进入真正的代码,我想给Programming With Assertions一试(或相当于.NET Debug.Assert)。通过这种方式,您可以在运行期间实际检查您的条件:
assert condition
如果情况并非如此,或者您只是不想,可以将前置和后置条件写入JavaDoc。
/** * @precondition: the connection has been established. * * @postcondition: the schema is created. * */
你甚至可以定义这些JavaDoc annotations,使他们出现在Javadoc生成的文档。这样你可以使用自然语言来定义你想要声明的内容。
你也可以表达你的前置和后置条件更数学我为了增加你的条件,简洁,这可能使它们更容易理解:
对于你一定能使用简单的数字比较<
,<=
,>
, >=
等,但是,假设你要定义为Set
不变,那么你可以将它表示为:
/**
* @invariant: set == filterDuplicates(set)
*
*/
因此利用假想/伪函数来表达你的条件。
如果您喜欢功能性语言,可以进一步开发此功能。我的数据结构和算法,教授使用哈斯克尔定义先决条件,后置条件和不变量新推出的数据结构:
module TreeSets(TreeSet,
contains, add, remove, card, traverse)
where
data Ord t => TreeSet t = E | N (TreeSet t) t (TreeSet t)
inv E = True
inv(N l x r) = all(<x)(abs l) && all(>x)(abs r) &&
inv l && inv r
这真的取决于对他们来说,你正在写这一点,因此我的建议是使用自然语言 。每个人都可以理解,特别是面向对象的程序最容易制定。
相关问题
- 1. 如何编写伪代码
- 2. 编写代码为伪
- 3. 您是否在编码之前用伪代码写出算法?
- 4. 如何在HTML中编写算法/伪代码?
- 5. 生成条件伪代码
- 6. 如何在代码中编写条件Filter String Winforms devexpress?
- 7. 如何在PHP中有条件地编写此代码?
- 8. Nasm/Assembly如何写这个伪代码
- 9. 如何以伪代码写入?
- 10. 如何编写伪代码的递归关系?
- 11. 如何为以下图表编写伪代码?
- 12. 如何编写代码示例,在代码中缺少代码?
- 13. 我如何写XSL代码与条件
- 14. 如何在LINQ2SQL中编写此代码?
- 15. 如何在CPS中编写此代码?
- 16. 如何在钛中编写android代码
- 17. 如何在javascript中编写html代码?
- 18. 如何在代码中编写relativeLayouts
- 19. 如何在SQL中编写此代码?
- 20. 如何在代码中编写'android:configChanges =“keyboardHidden”'?
- 21. 如何在JavaScript库中编写代码?
- 22. 如何在jQuery中编写此代码?
- 23. 如何在JSF中编写Java代码?
- 24. 如何在JRuby中编写此代码?
- 25. 如何在PHP中编写html代码?
- 26. 如何在Angularjs中编写jQuery代码?
- 27. 如何在Django中编写Python代码
- 28. 如何在CoffeeScript中编写此代码?
- 29. 如何编写xaml代码到配置文件在c#wpf
- 30. 如何在angular4中编写条件css?