正确性 (计算机科学)

✍ dations ◷ 2025-11-23 15:45:05 #理论计算机科学

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

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

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

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

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

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

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

相关

  • 特克斯和凯科斯群岛坐标:21°45′N 71°35′W / 21.750°N 71.583°W / 21.750; -71.583特克斯和凯科斯群岛(英语:Turks and Caicos Islands,/ˈtɜːrks/和/ˈkeɪkəs/ / /ˈkeɪkoʊs/ / /ˈke
  • 正压正压大气是当大气压力仅仅取决于大气密度、以及大气密度亦仅取于大气气压。因此,在正压大气内,等压面亦即为等密度面。若相关大气乃理想气体,则等压面、等密度面与等温面亦为同
  • 贻贝见内文贻贝目(学名:Mytilida)是双壳纲翼形亚纲一个海洋软体动物的目,现时包括约400个物种。本目物种一般称之为淡菜类,皆在海洋环境中的潮间带及深海中生活。本目物种遍布世界各
  • 2010 TK72010 TK7是由NASA的红外线空间望远镜广域红外线巡天探测卫星(WISE)于2010年10月发现的小行星。2011年7月27日《自然》期刊发表的一篇论文证明2010 TK7是地球的特洛伊小行星,它
  • 卡尔·威廉·施勒格尔卡尔·威廉·弗里德里希·施勒格尔(德语:Karl Wilhelm Friedrich Schlegel,1772年3月10日-1829年1月12日)是德国诗人,文学评论家,哲学家,语言学家和印度学家。卡尔·威廉·施勒格尔
  • 第二十一饕餮军团第二十一饕餮军团(英语:Legio XXI Rapax)古罗马军队建制名称。由屋大维于公元前31年建立并存在至公元92年。该军团曾先后参加坎塔布连战争(英语:Cantabrian Wars)和镇压雷蒂安人(英
  • Ka/Ks在遗传学中,Ka/Ks或者dN/dS表示的是异义替换(Ka)和同义替换(Ks)之间的比例。这个比例可以判断是否有选择压力作用于这个蛋白质编码基因。异义替换导致氨基酸的改变,而同义替换由于
  • 许绶泰许绶泰(1916年6月-1994年11月10日),原名寿大,曾用名受达,笔名徐由、蔡西君,江苏吴县人,寄生虫学专家。许绶泰先后毕业于国立中央大学农学院畜牧兽医系、菲律宾大学兽医学院。1948年
  • 蔡襄蔡襄(1012年-1067年),字君谟,号莆阳居士,福建路兴化军仙游县(今福建省仙游县)人,北宋政治家、书法家和茶学专家。著有《茶录》、《荔枝谱》等书。谥号忠惠。蔡襄生于北宋大中祥符五年
  • 有毒涡鞭毛藻有毒涡鞭毛藻(toxic dinoflagellate)是一类会产生毒素的涡鞭毛藻(甲藻门),日本的长崎,美国的华盛顿皆有繁殖。现存的海洋藻类约有19,000-25,000种,其中有30-40种涡鞭毛藻含有毒性成