计算机科学哲学(五)
出于同样的原因,软件令牌无法误障,因为它们是相同的意图和规范的实现。 在设计不佳时,唯一的软件类型可能会误操作; 失式软件类型能够正确执行其功能,但也可能产生一些不期望的副作用。 对于对恶意软件分类问题发生故障的概念,请参阅(Primiero等,2019)。
7.4务实的正确性
Buda和Primiero(2024)突出了LOAS的本体如何不考虑务实和上下文方面,从计算伪像的定义中省略了用户的角色。 因此,数学和物理正确性的概念,以及基于规范与其实施之间的规范关系的关联定义,省略了设计人员,开发人员,最终用户,政策制定者或卖方计算系统的调节作用。 例如,隐私或版权法则,独立于可以在逻辑上开发或无法开发的规范电源,并从给定的一套规格进行物理实施; 规格本身通常是软件生命周期内的修订对象,由于使用期间的新要求或误扣; 给定的编程语言的选择可以通过硬件要求决定,它本身可能影响规范的制定方式; 甚至可以从之前的错误设计或使用中出现新规范,如“重新发送”功能的“重新发送”功能的定义中。
将这些必要的语用方面包含在计算工件的本体中,需要适当修订实施和正确性属性的关系。 为此目的,Buda和Primiero(2024)介绍一个用户级模型,该模型模型与计算系统的每个LOA相关联一个或多个用户级别定义基于务实贡献的利益相关者以确定系统的使用及其正确性标准。 实现成为每个用户级别的所请求的使用和计算系统的使用方式,即每组利益相关者。 当每个用户级别的每个模式和使用请求与规范一致时,实现了正确性,并且在添加时符合其或至少在添加时至少兼容,则反过来变得正确使用。
8.计算机科学的认识论现状
在20世纪60年代和20世纪70年代之间,计算机科学被出现为独立于其较大的兄弟姐妹,数学和物理学的学科,以及它根据数学,实证和工程方法的影响定义其认识论的问题(TEDRE和SUTIEN 2008,TEDRE 2011,TEDRE 2015,Primiero 2020)。 今天仍然存在辩论,计算机科学是否必须大多被视为数学学科,工程分支,或作为科学纪律。
8.1计算机科学作为数学学科
计算机科学的任何认识论都是基于本体论,方法论和认识论的承诺,即关于计算系统性质的假设,指导软件开发过程的方法,以及由此涉及的推理,无论是演绎,归纳,或两者的组合(Eden 2007)。
作为数学概念分析的原因是逻辑的奇迹,哈伯特关于谓词微积分的可辨,称为OntscheidungsProblus(希尔伯特和Ackermann 1950):可以是否有机械程序,用于决定逻辑的任意句子是否可提供? 为了解决这个问题,需要一个严格的逻辑和数学中有效或机械方法的非正式概念模型。 这是首先,最重要的是数学努力:一个人必须开发非正式概念的数学类似物。 计算机科学的支持者在自然界中的数学假设可以看到计算机程序可以被视为这种数学实体的物理实现,并且可以通过理论计算机科学的正式方法来减少节目的推理。 Dijkstra(1974)和Hoare(1986)在将计划的指示视为数学句子时非常明确,并考虑在一个公理系统方面进行编程语言的正式语言(HOARE 1969)。 如果程序规范和说明以相同的形式提升,正式的语义提供了证明正确性的手段。 因此,关于计算系统的行为的知识是由涉及的数学校验的演绎推理获得。 在这种理性主义乐观(EDEN 2007)的基础上的原因是关于计算系统可以知道的是它们是伪像,即人造系统,并且这样,可以通过确定性地预测其行为(Knuth 1974)。
虽然对理论计算机科学的核心关注度,但是在教会图书论文,计算复杂性理论和递归功能上的现有条目中涵盖了可计算性和复杂性的主题。
8.2计算机科学作为工程学科
在20世纪70年代后期,在日常环境中越来越多的计算系统应用以及随后的市场需求蓬勃发展导致学术界和工业中计算机科学家的利益偏差:从重点关注证明计划的正确性,他们转向方法管理复杂性并评估这些系统的可靠性(Wegner 1976)。 实际上,正式表达了嵌入在较大系统中并与用户交互的高度复杂程序的规范,结构和输入实际上是不可能的,因此提供其正确性的数学证据大多是不可行的。 计算机科学研究在测试技术方向上发展,能够提供正确性的统计评估,通常称为可靠性(Littlewood和Strigini 2000),就程序代码中的错误分布估计。
符合计算机科学的工程账户,是计算系统的可靠性的论点,以与飞机的桥梁和航空航天工程相同的方式评估(Demillo等,1979)。 特别是,而实证科学检查存在的存在,计算机科学专注于可以存在的内容,即如何产生文物,因此应该被视为“数学工程”(Hartmanis 1981)。 同样,而科学咨询参与发现关于在观察中现象的法律,不能识别计算机科学实践中的适当法律,因为后者相当参与有关计算工件的现象(Brooks 1996)。
8.3计算机科学作为科学学科
如§6中的检查,因为在许多情况下,已知软件测试和可靠性测量技术以确保不存在代码故障(Dijkstra 1970),但特别是对于所谓的安全关键系统(例如控制器)的评估飞机,火箭队,核电厂等。),正式方法和经验检测的组合用于评估正确性和可靠性。 因此,计算机科学可以被理解为一个科学学科,因为它利用了演绎和归纳的概率推理来检查计算系统(Denning等,2005,2007; Tichy 1998; Colburn 2000)。
计算机科学是从方法论观点来看,与经验科学的一个标准迹象追溯到Newell,Perlis和Simon 1967年的科学信(Newell等,1967)并占据了1980年代(Wegner 1976)。 在1975年的图灵奖学课程中,纽厄尔和西蒙认为:
计算机科学是一个实证纪律。 我们将称之为实验科学,但与天文学,经济学和地质一样,其一些独特的观察和经验形式不符合实验方法的狭窄刻板印象。 尽管如此,他们是实验。 构建的每台都是一个实验。 实际上构造机器对自然构成了问题; 并通过观察机器在运行中倾听答案并通过所有分析和测量方法分析它(Newell和Simon 1975,第114页)
由于新尔和西蒙的图灵奖学讲座,很明显,计算机科学可以被理解为经验科学,而是一种特殊的种类,这与计算中的实验性质有关。 实际上,关于计算机科学的认识论现状的许多目前涉及定义它是什么样的科学(TEDRE 2011,TEDRE 2015)的问题,特别是计算机科学实验的性质(Schiaffonati和Verdicchio 2014),计算机的性质,如果有的话,哈特曼1993; rombach和seelisch 2008),以及计算机科学与软件工程的方法关系(Gruner 2011)。