正确性 (计算机科学)

✍ dations ◷ 2025-12-01 03:08:29 #理论计算机科学

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

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

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

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

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

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

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

相关

  • 别嘌呤醇别嘌呤醇(英语:Allopurinol,又名别嘌醇、异嘌呤醇)是主治高尿酸血症(血浆中的尿酸浓度过高)及其并发症痛风病等的药物。别嘌呤醇是一种嘌呤类似物;它是次黄嘌呤(体内一种常见的嘌呤)
  • 武装叛乱、暴乱罪武装叛乱、暴乱罪,是指《中华人民共和国刑法》所规定的一个罪名,属于危害国家安全罪的一种。根据《中华人民共和国刑法》所规定:武装叛乱、暴乱罪,是指组织、策划、实施武装叛乱
  • 北京邮电大学世纪学院北京邮电大学世纪学院是经中华人民共和国教育部批准,由北京邮电大学与北京学涵教育科技有限公司合作举办的全日制本科普通高等学校,是教育部直属高校在京举办的第一所独立学院
  • 亚硫酸镁亚硫酸镁是亚硫酸的镁盐,化学式MgSO3。其最常见的水合形式有6个水分子,使其成为六水合物MgSO3 ·6H2O。加热到40 °C(104 °F)以上时,将脱水成三水合亚硫酸镁(MgSO3 ·3H2O)。 无水
  • 牛肉香精牛肉香精,是一种食品添加剂,加入后的猪肉会在香味上接近牛肉。但是由于市面上牛肉价格高于猪肉,其往往会常被滥用谋取暴利。而中国市场上的一些牛肉香精(被大陆媒体称为“牛肉膏
  • 早坂文雄早坂文雄(1914年8月19日-1955年10月15日),日本宫城县出身的作曲家。1938年以《古代的舞曲》获得“费利克斯·魏因加特纳奖”。1939年到东京之后、开始了电影配乐的工作。最著名
  • 威廉·米勒 (传教士)威廉·米勒 (英语:William Miller,1782年2月15日-1849年12月20日),美国浸礼宗传教士,十九世纪中期建立了北美宗教运动再临宗。在他所说的耶稣再临未实现后,其追随者分裂成多个组织,其
  • 哈雷彗星~0.002哈雷彗星(正式名称是1P/Halley)是著名的短周期彗星,每隔75-76年就能从地球上看见,是唯一能用肉眼直接从地球看见的短周期彗星,人一生中可能经历两次他的来访。其它能以肉眼
  • 维利卜维利卜(Willy Puchner,1952年3月15日-),下奥地利州米斯特尔巴赫出生,是一位摄影家、插画家与作家。 双亲皆是摄影师。1967年至1974年就读于维也纳艺术学院(Höhere Graphische Lehr
  • 万顺路万顺路(Wanshun Rd.)是屏东县万丹乡的东西向主要干道。为台88线下之平面侧车道,全线属市道188号。本道路共分成二段,连结万丹市郊。西起于仑顶路口接万大大桥往高雄市大寮、凤山