正确性 (计算机科学)

✍ dations ◷ 2025-04-04 11:26:19 #理论计算机科学

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

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

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

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

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

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

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

相关

  • 类人猿人格类人猿人格权运动是一项旨在向人科的非人类成员(倭黑猩猩、黑猩猩、大猩猩、红毛猩猩)提供在法律上“人”的地位,并基于此对这些动物进行合法保护的运动。支持者包括灵长类动物
  • 碲醇碲醇(英语:tellurol)是指含有碲醇基(形如-TeH的官能团)的有机化合物。碲醇是醇和酚的类似物,其中醇的氧被替换成了碲。碲醇和硒醇、硫醇具有类似的性质,其中碲醇是最稳定的。碲醇与
  • 戈尔特斯戈尔特斯(Gore-Tex)是美国W.L. Gore & Associates公司的注册商标,为1976年由Wilbert L. Gore、Rowena Taylor与Robert W. Gore(Wilbert L. Gore之子)共同发明的防水透气性布料。
  • 中间层中间层(英语:mesosphere)为地球大气层的一层,又称为中气层,其高度在50—85 km,下方是平流层,上方是热层。中间层的气温随高度的上升而下降,因此其大气存在相当强烈的垂直方向的运动
  • 液化氦液氦(英语:Liquid helium)是指在极低温的摄氏温标-269 °C(约等于热力学温标4 K或者是华氏温标-452.2 °F)时成为液体的氦,该化学元素的沸点与临界点取自于氦的同位素:较为常见的氦
  • 炉霍大地震1973年炉霍大地震,是1973年2月6日发生于四川省炉霍县雅德的7.9级地震。地震损失严重,死亡2175人,受伤2756人。此次地震震中烈度Ⅹ度,震源深度17千米。这次地震发生在川西印支期
  • 印度尼西亚时间印度尼西亚群岛地理上延伸跨越4个时区,从亚齐的UTC+6到巴布亚的UTC+9。但是,印度尼西亚政府只承认其领土上的3个时区:西部时区和中部时区之间的界线是从爪哇岛和巴厘岛之间向北
  • 2015年欧尔金和谐号劫持案劫持失败 马来西亚 澳大利亚 越南其他援助/待命部队:  印尼 泰国 合计1,500人,16艘舰艇与四架飞机 洛克希德AP-3C型猎户座海上巡逻机(英语:Lockheed AP-3C Orion) 2015年欧
  • 圣斯蒂芬王冠领圣斯蒂芬王冠领(匈牙利语:a Szent Korona Országai),又称匈牙利高王国(拉丁语:Archiregnum Hungaricum)是奥匈帝国内匈牙利的领土部分,又称外莱塔尼亚。圣斯蒂芬王冠领是1867年奥地
  • 改装车改装车,是改装过,亦即是非原装的汽车。改装可以是外观改装,比如更换胎铃、贴玻璃纸、安装大包围;也可以是性能改装,比如换装高性能引擎、拆除部分装备以减轻车重、改装进排气、加