正确性 (计算机科学)

✍ dations ◷ 2024-09-20 21:26:51 #理论计算机科学

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

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

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

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

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

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

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

相关

  • 尿激酶尿激酶(英语:Urokinase)由肾脏生成,可直接激活纤维蛋白溶酶原转变成纤溶酶。尿激酶是从尿中提取的第一代天然溶栓药。EC 1.1/2/3/4/5/6/7/8/9/10/11/12/13/14/15/16/17/18/19/20
  • 战争旅游战争旅游(War tourism)是为了观光或是历史研究的原因,前往正在战争或是以往曾发生战争的地区。即使可能产生危险甚至危害生命安全,仍前往战争中或是即将发生战争之国家或地区,进
  • 虫部,為漢字索引中的部首之一,康熙字典214個部首中的第一百四十二個(六劃的則為第二十五個)。就繁體和簡體中文中,虫部歸於六劃部首。虫部通常以左、右、下方為部字。且無其他部
  • 十二支派以色列十二支派是由以色列第三代始祖雅各的12个儿子发展起来,其中第11子约瑟后来成为埃及首相,成为极为重要的一支派而得到了两份家产,分别由其子以法莲(Ephraim)和玛拿西(Manasse
  • 静磁场静磁学(Magnetostatics)是电磁学的分支,专门研究电流稳定(不随时间变化)的系统内磁场。在静电学中,电荷是稳定不变的;在这里,电流是稳定不变的。磁化强度不需要是静态的;静磁学的方程
  • 上海音乐学院上海音乐学院(简称上海音院或上音,音乐界称上海院),前身为建于1927年11月的国立音乐院,是中国最早建立的高等音乐院校。现任院长为著名歌唱家廖昌永。上海音乐学院的前身是由蔡元
  • 乌尔姆乌尔门战役,即乌尔姆战役,又称第一次多瑙河战役,爆发于1805年10月,属于拿破仑战争的一部分。当时奥地利将军队驻扎于意大利附近,俄国的军队正从俄国南下但尚未与奥地利会合。拿破
  • 洼地在自然地理学中,低地(lowland)是指地势相对较低的平地,适用于描述从深海到高地之间向上倾斜的陆地、山区内的低洼地、剥蚀平原或与高地相对的一切陆地。其中苏格兰低地是典型的
  • 储大文《清代学者象传》第二集之储大文像储大文(1665年-1743年),字六雅,号画山,江南宜兴人。清朝翰林。储大文为进士储方庆之子,生性聪颖,善古文,姜宸英见其文,叹为旷代奇才。康熙五十三年(17
  • 滨村弘一滨村弘一(1961年2月8日-),日本企业家、编辑,出生于大阪府。笔名滨村通信。滨村1985年从早稻田大学第一文学部毕业后,在JICC出版局(现宝岛社)担任电脑游戏编辑,后进入ASCII担任《Login