正确性 (计算机科学)

✍ dations ◷ 2025-11-30 19:36:27 #理论计算机科学

在理论计算机科学中,算法的正确性(英语:correctness)是指一个算法在程序规范下被认定为正确的判定。其中,正确(英语:functional correctness)针对输入输出的行为(例如:对每一个输入,算法都能给出预期的输出)。

人们将正确性分为两类。一类被称为部分正确性(英语:partial correctness),它要求在算法返回结果时这一结果是正确的;另一类被称为完全正确性(英语:total correctness),它在部分正确性的基础之上还要求算法必须能够结束。由于对于停机问题没有通用的解决方案,因此判定完全正确性的断言有着更多需要深层次研究的地方。终止的证明是指一类数学证明,因为完全正确性需要证明一个算法会终止,所以它在程序的形式验证中起着至关重要的作用。

例如考虑这样一个问题:依次搜索整数列1, 2, 3, …来看是否存在某个特定现象——比如说存在一个奇数为完全数。对于这个问题而言,我们很容易写出一个部分正确的程序(直接对于每个数字做长除法判定其是否完全)。然而如果我们想证明这个程序是完全正确的,那就相当于我们在断言一个在数论里目前还未知的结论。

在算法和程序规范都是基于形式化来给出时,对正确性的证明应当为一个数学证明。然而我们并不期待能够给出特定机器上实现的特定程序的正确性断言,因为那样将需要考虑诸如内存限制在内的更多问题。

证明论中有一个结论柯里-霍华德同构。这一结论认为:任意一个在构造性逻辑下的功能正确性的证明都对应了一个λ演算程序。这种转换证明的方式被称为(英文:program extraction)。

霍尔逻辑是一个具体的能够严密验证程序正确性的形式系统。它用一系列的公理来定义程序语言的语义,从而通过称之为霍尔三元组的断言来验证程序的正确性。

软件测试是指验证一个程序或系统的某些属性或能力来判断它是否达到预期目的的行为。尽管软件测试在软件质量方面起着至关重要的作用,并且被程序员和测试员们广泛采用,但由于人们对软件的认识十分有限,它仍旧是一个艰深的领域。软件测试的最大难点在于如何控制其复杂性:我们没有办法在一个合理的复杂度内完整地测试一个程序。测试不只是调试。测试的目的包括但不限于确保软件质量、验证其正确性和估算其稳定性。我们对测试的定义也可以更加一般化,其中正确性测试和稳定性测试是两个最大的研究领域。软件测试是预算、时间和软件质量的一个平衡。

相关

  • 割包皮割包皮可以指:
  • 西区故事《西区故事》(英语:West Side Story)于1959年开拍,1961年正式上映。原来1957年音乐剧的创作班底仍然参与电影的拍摄工作,但为了适应音乐剧与电影之间的差异,整部剧在剧情和表现手
  • 列兵在一些国家中,列兵是该国军队中最低阶的军衔。在中国人民解放军军衔制度中,列兵位于上等兵之下,一般授予义务兵役制下征召的第一年士兵,是最低阶的军衔;在义务兵役制的第二年,列兵
  • 酶联萤光原位杂交酶联荧光原位杂交(catalyzed reporter deposition fluorescent in situ hybridization,CARD-FISH,直译为催化报告沉积荧光原位杂交),是荧光原位杂交(FISH)的一种变形,可以更有效
  • 亚伯拉罕·康斯坦丁·穆拉德热亚·多桑亚伯拉罕·康斯坦丁·穆拉德热亚·多桑(Abraham Constantin Mouradgea d’Ohsson,1779年9月26日-1851年12月25日),亚美尼亚人,生于奥斯曼帝国君士坦丁堡(今土耳其伊斯坦布尔),瑞典东
  • 莫顿·艾夫奥·普斯莫顿·艾夫奥·普斯(英语:Morton Everel Post;1840年12月25日-1933年3月19日),是一位美国民主党的政治人物,曾在1881年至1885年担任怀俄明领地众议院议会代表。普斯生于纽约州门罗
  • 中国科学院微电子研究所中国科学院微电子研究所(简称“微电子所”)是中国科学院下设的研究机构,位于北京市朝阳区北土城西路3号。微电子所的前身是成立于1958年109厂,1986年中国科学院半导体研究所微电
  • 应用物理学快报应用物理学快报(Applied Physics Letters),为一家物理学领域的学术性期刊,由美国物理协会出版发行。该期刊创刊于1962年。应用物理学快报面向应用物理学的各个相关领域。该期刊
  • BirdyBirdy,昵称为鸟车,由Riese und Müller所设计的折叠车,1995年时由生产。这项设计在1993年获 Hessian Innovation Prize,并且在1994的 IFMA 展及 Eurobike 展中展出,获得不错评价
  • 西维吉尼亚州州旗西维吉尼亚州州旗以白色为底、并有深蓝色边框,中央则是一个含有该州州徽的纹章。其中所绘的石碑上刻有日期1863年6月20日,即西维吉尼亚州加入美国的纪念日,石碑左右的两人分别