正确性 (计算机科学)

✍ dations ◷ 2025-04-02 14:09:59 #理论计算机科学

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

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

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

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

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

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

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

相关

  • 口腔炎口腔炎(stomatitis)是一种疾病,指口腔黏膜或舌黏膜发生的炎症。该病的成因可以分为与口部有关及与全身有关,前者包括口部卫生欠佳、装得不妥当的假牙、或是由灼热食物造成的烫伤
  • 无机焦磷酸酶无机焦磷酸酶(英语:Inorganic Pyrophosphatase,简称为焦磷酸酶)是一种催化一分子焦磷酸盐转化为两分子磷酸盐离子的酶。这是一个高放能的反应,因此此反应可偶联到一些热力学上不
  • 奥蒂斯·雷丁奥蒂斯·雷丁(英语:Otis Ray Redding, Jr;1941年9月9日-1967年12月10日)是一位知名的美国灵魂乐歌手,以唱腔中的热情和单曲《坐在湾边的港口》广为人知。雷丁出生于乔治亚州的小镇
  • 德·索托国家森林德·索托国家森林(英语:De Soto National Forest),名自16世纪探险家埃尔南多·德·索托,是一片面积518,587英亩(2,099平方千米)的松树林,地处密西西比州南部。它是美国墨西哥湾沿岸
  • 2003年8月2003年8月的新闻事件:请参看:
  • 七星山 (桂林)七星山位于中华人民共和国广西壮族自治区桂林市市区东部。因其七座山峰海拔相近,布局与北斗七星相似,故而得名。七星山已被划在桂林七星公园范围之内。七星山整体由普陀山的天
  • NGC 5714NGC 5714是一个距离地球约1.3亿光年的Sc型螺旋星系,在天球上位于牧夫座。该星系由威廉·赫歇尔发现于1787年5月12日。天文学家于2003年在NGC 5714的中心核球下方距离约8000光
  • 战术空中导航系统战术空中导航系统(英语:Tactical Air Navigation,缩写为TACAN,通称塔康),通常由军队使用,与民航用途DME/VOR功能相近,可以为使用者(如航母、空军基地等)提供目的地的方位和斜距,但精确
  • 2016年夏季奥林匹克运动会男子100米仰泳比赛2016年夏季奥林匹克运动会男子100米仰泳比赛为2016年夏季奥林匹克运动会游泳比赛的其中一项竞赛项目,赛事于2016年8月7日至8月8日在奥林匹克水上运动中心中举行。以下是比赛
  • 偏穗草科偏穗草科包括17属约80余种,分布在热带的南美洲东部和非洲西部。1981年的克朗奎斯特分类法将其列入鸭跖草目,1998年根据基因亲缘关系分类的APG 分类法认为无法将其列入任何一目