正确性 (计算机科学)

✍ dations ◷ 2025-11-23 01:49:32 #理论计算机科学

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

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

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

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

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

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

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

相关

  • 地舌菌纲地舌菌纲(学名:Geoglossomycetes)是子囊菌门盘菌亚门的一个纲,为一个单型的分类元,其下只有地舌菌目(Geoglossales)一个单型目,而地舌菌目亦只有地舌菌科(Geoglossaceae)一个科。地舌
  • 伪斜体伪斜体(oblique type)是西文字体的一种样式,是在正常字体样式基础上,通过倾斜字体实现的一种字体样式。西文中有两种斜体:oblique type和 Italic type。倾斜时伴随着字形的变化的
  • 逻辑代数在数学和数理逻辑中,逻辑代数(有时也称开关代数、布尔代数)是代数的一个分支,其变量的值仅为真和假两种真值(通常记作 1 和 0)。初等代数中变量的值是数字,而且主要的运算是加法、
  • 叶菜绿叶蔬菜,也称作叶菜,是植物叶子可以作为蔬菜烹饪、食用。 虽然可作为绿叶蔬菜的品种千差万别,但大多数都有相似的营养成分与烹饪方法。全世界已知有近千种植物作为绿叶蔬菜。
  • 坡州市坡州市(朝鲜语:파주시/坡州市 Paju si */?)是位于大韩民国京畿道西北部的市。本市市界上的板门店为南北停战区的最前线位置。该市也是所有非军事区南缘的韩国行政区域中唯一一
  • 俄罗斯联邦主体俄罗斯联邦是由联邦主体(俄语:субъе́кт(ы))组成的一个联邦制国家,但其中有2个联邦主体(均位于克里米亚半岛上)未被国际普遍承认为俄罗斯领土。每个主体在联邦内的权利是
  • 粪菌粪生菌 (Coprophilous fungi)(粪生真菌,粪菌) 是一种腐生营养类型的真菌,喜欢生长在动物粪便上。然后,在释放孢子到周围区域之前,真菌在粪便上蓬勃发展。粪菌释放其孢子于周围的
  • 米洛什·巴比奇米洛什·巴比奇(塞尔维亚语:Милош Бабић,1968年11月23日-),塞尔维亚前职业篮球运动员。他在1990年的NBA选秀中第2轮第50顺位被菲尼克斯太阳选中。
  • 送花送花,又名献花,是人类社会的社交活动及仪式,给敬爱的人示好。 受者可能是祖先、神祇、来宾、恋人、名人、艺人、生日者等。 送花的礼节在春秋战国时期已经存在,宋代史绳祖《学斋
  • 伊藤辽哉伊藤辽哉(日语:伊藤 遼哉,1998年5月2日-),日本足球运动员,司职中场,现效力德国足球西部地区联赛球队洛特体育之友。伊藤辽哉曾效力于拜仁慕尼黑U15-U16梯队、沙尔克04U17-U19梯队、