浅谈计算机科学中的哲学智慧
- 格式:docx
- 大小:30.38 KB
- 文档页数:8
计算机教学中的哲学观[摘要]计算机科学是由数学与物理学科发展而来的,由于数学与哲学是密切联系的,所以,计算机科学与哲学也是密不可分的。
一方面,正确的世界观是人们从事计算机研究的前提;另一方面,计算机科学的发展和完善又改变了人们对整个世界的认识。
所以,计算机教师应加强对哲学知识的学习,提高哲学素养并将其应用于教学之中。
[关键词]计算机教学哲学观计算机科学哲学一、引言“哲学是关于世界观的学问,是世界观的系统化和理论化。
”它是研究自然界、人类社会、思维三大领域的普遍本质及其规律的科学。
计算机是研究将现实世界用计算机进行处理、存储,并能反映现实世界的具体科学。
哲学为计算机科学的研究提供了理论基础与背景,提供了世界观和方法论基础;而同时计算机科学的出现和发展又深深影响着人们的哲学观,促进着哲学的不断发展。
二、计算机科学与哲学任何科学学科的发展都是在哲学思想的导引下进行的,计算机也不例外。
然而,当代计算机的发展也深刻地影响着哲学,促进着哲学的发展。
1.计算机科学是在哲学的思想指导下形成和发展的。
计算机科学的产生是数学理论与物理学电子器件的发展相互结合的产物,其中先是数学理论的研究深受哲学思想的影响。
例如,康德哲学是将经验论与唯理论二者的观点并入了一个框架之中。
康德认为理性是可以脱离经验而单独存在的,数学则是理性的构成形式之一,这种认识对于计算机的产生便具有十分重要的意义。
这可以从计算机所识别的十进制转换中看出,数学形式可以脱离人脑而成为构筑电脑时空的形式。
人工智能的研究使计算机具有人的智能功效,从这方面可知,康德哲学中这种对理性范畴的分析和界定,实际上就暗示了人的智能或认知形式是可以从经验或者说是内容中分离出来而存在的。
再如,早在两千五百多年前,古希腊数学家、哲学家毕达哥拉斯创立了“万物皆数”的哲学思想。
后来柏拉图又将这一思想进行了延伸和扩展,他不仅想通过“数”来认识自然万物,而且要用“数”的计算来取代自然界本身。
趣谈计算机与哲学【摘要】如果将计算机与哲学放在一起,谈计算机里的哲学,大家会觉得两者相去甚远,但笔者一直觉得两者间存在着共性的东西。
这里结合马哲的自然辩证法则,谈谈学习计算机知识中的哲学一些思考和感悟。
【关键词】计算机;哲学;辩证法;方法论“计算机“与”哲学“是大家十分熟悉的两个字眼,但放在一起,谈计算机里的哲学,猛然间会让很多人觉得有点好笑。
为什么呢?很简单,一个是自然科学,一个是社会科学;一个具体而实物化,一个非常抽象,两者相去甚远。
但稍作深入学习便会知道,他们之间也存在一般与个别的关系,前者是研究特殊领域的具体规律,而哲学则是研究整个世界的最一般规律,两者间存在着既相互区别、又相互联系的辩证统一关系。
也就是说,在计算机这门具体学科中处处包含着哲学思想,特别是马克思主义哲学中的自然辩证法则。
这里笔者就学习计算机知识的过程中,所感悟到的关于哲学方面的一些思考列出来,和大家做一讨论。
一、计算机的出现不是横空出世的发明,而是一个哲学渐变过程今天我们所说的计算机,一般是指电子计算机,本文如是。
多数教材只提到1946年第一台“电子计算机”出现在美国,每每有人学到这里,都会觉得是一个横空出世的大发明,一下改变了整个世界。
其实不然,在1946年电子计算机问世以前,欧美国家已经出现了各种“机械式计算机”,并投入实际应用(国产影片《横空出世》中,那位总工程师手中就有一台机械式计算机,视若宝贝)。
最早期的“电子计算机”只不过相当于将“机械式计算机”用电子器件重新构造了一遍而已,就是用“电子元件”替代“机械零件”,用“电信号传导”替代“力的传递”。
从“机械式计算机”再向前追溯,就是中国的“算盘”了,这个也算的上“计算机”或“计算器”了,只不过算盘需要更多的手工操作和人脑参与,自动化程度很低;再向前追溯,还有“算筹”等等。
笔者认为,这些东西和电子计算机属于一个“系列产品”,都是运算工具,只是速度、容量和自动化程度越来越高而已。
计算机科学哲学的核心理念
计算机科学哲学的核心理念
毕达哥拉斯主义的基本精神,正是追求宇宙的数学和谐性的思想,它能成功地引导科学家使用数学语言、公式来刻画物理世界的内在奥秘,这是与当今流行的"计算主义"相互呼应的.另一方面,按照系统科学模式重新理解的目的论自然观,则能提供从生物自然界、人工生命到自组织的宇宙的合理解释.毕达哥拉斯主义与目的论自然观的整合,将构成计算机科学哲学的核心理念.
作者:桂起权任晓明 GUI Qi-quan REN Xiao-ming 作者单位:桂起权,GUI Qi-quan(武汉大学哲学学院,湖北,武汉,430072) 任晓明,REN Xiao-ming(南开大学哲学系,天津,300071)
刊名:淮阴师范学院学报(哲学社会科学版)英文刊名:JOURNAL OF HUAIYIN TEACHERS COLLEGE(SOCIAL SCIENCES EDIITON) 年,卷(期):2010 32(1) 分类号:N031 关键词:计算机科学哲学毕达哥拉斯主义计算主义目的论自然观自组织宇宙。
计算机中的哲学计算机的世界就是虚拟的数据世界,在这个世界中,一切都是以数据的形式存在的,然而这个世界的统治者是人类,也就是说计算机就是人类意愿的体现。
计算机就像我们生活的世界一样,我们写了一个程序,一个输入,一个输出,在一台机算机上跑,世界是硬件,社会是操作系统,太阳是电源,地球是内存,上帝是CPU,开机是宇宙大爆炸。
我们启动了程序,进入了程序,也就像我们开启了生命一样。
当内存释放的时候也就是我们生命结束的时候。
因此计算机的各种工作也就是我们意愿的体现过程。
计算机及其所实现的网络在生活中对我们的帮助是众所周知,我可以这样说,当今社会,没有网络就会OUT,因为你不能拥有第一手的信息资料,只能从别人那里获取,当然会OUT,我也不是说没有网络就不能生活,很多人没有计算机,但是活的很开心。
计算机网络只是服务于人类,而并不是用来衡量我们的生活。
我们每天在用的计算机,都是根据我们的意愿来运行的,我们需要什么就去控制它,它就给我们什么,这就是计算机存在的目的,它也是根据我们的意愿来做出改变。
起初人类为了方便才去设计一种机器来替自己工作,计算机就是这样诞生的,究其目的就是为人类服务。
当人们遇到某种复杂繁琐重复的工作时,就很难解决问题,这时候就可以设计一种程序来为我们解决问题,然后机器去重复工作,而且只要提供电就可以,这就是人们的意愿,人们解决问题的方法意愿,计算机就是解决问题所用到载体是工具,归根结底人类的意愿占据了主导,这才是真正的初衷。
我们每天学习练习的编程就是在学习控制电脑,在将自己的意愿或者别人的意愿,实现在计算机上,当然这种工作不是很有趣,但是这个是很有用很高效的,也是很重要的,是人们意愿控制机器世界的传输者。
作为一个软件工程工作者,虽不能说能深刻体会期中的哲学,但还是懂一点的,在我的理解,我将这称为电脑哲学。
计算机网络,带给我全新的体验和感触,开阔了我的视野。
互联网的出现,使得“网络就是计算机”的观点得以诞生。
浅谈计算机软件领域中的哲学问题刘春红摘要:人类制造出了迄今为止最复杂的工具——计算机软件,软件究竟是什么?我们应如何看待它?本文结合长期的专业实践,尝试着从哲学的高度进行了理论概括和反思。
关键词:计算机;软件;哲学1引言人类社会所特有的技术结构包括两方面:一方面是外在于人的工具系统;另一方面是人使用工具的技能。
这两方面相互协调又互相转化地双向发展,推动着人类技术以加速度向前发展,并由此导致了社会现代化和人类自身现代化的双向发展。
以往的工具都是人类躯体的延伸。
而计算机是人脑的延伸。
计算机不同于以往物质生产工具的一个重要特点是工具中出现了软件。
软件究竟是什么?这是当代信息技术出现以来技术理论与实践面对的一个新问题,迫切需要从哲学的高度进行理论概括和哲学反思。
软件是知识形态的技术,是人类思维程序的外化,是一种特殊的符号体系,它是可执行的程序。
2软件的特点及发展(1)软件是一种逻辑实体。
硬件是看得见摸得着的,而软件则不同,人们无法看到软件的形态。
而必须通过观察、分析、思考、判断,去了解它的功能。
性能及其他特性。
(2)软件的生产与硬件不同。
软件是通过人的脑力劳动,把知识和技术转化成信息的一种产品。
(3)软件在生存期没有硬件那样的机械磨损、老化问题,但存在退化问题。
(4)软件的开发和运行常常受到计算机系统的限制。
(5)软件的开发尚未完全摆脱手工艺的开发方式。
(6)软件是复杂的。
(7)软件成本相当昂贵。
(8)软件工作涉及到社会因素。
至今,软件经历了三个发展阶段:(1)程序设计阶段(20世纪50至60年代)(2)程序系统阶段(20世纪60至70年代)(3)软件工程阶段(20世纪70年代后)3主观认知与客观实际的对立统一问题人们对客观事物的认识是客观事物的特性或特征在我们头脑中的反映,客观事物的存在不以我们的意志为转移。
在软件生存期的各个阶段都可能发生主观认知与客观实际不一致的情况。
软件需求分析工作是软件生存期中决定性的一步。
计算机科学中的哲学思考随着计算机科学的不断发展,我们越来越多地看到计算机科学与哲学的交汇。
计算机科学和哲学作为两个看似毫不相关的领域,却有着紧密的联系。
实际上,哲学在计算机科学中发挥着不可或缺的作用。
1. 计算机科学和哲学计算机科学和哲学的关系可以追溯到哥德尔的不完全性定理。
这个定理告诉我们,任何形式化的系统都有一些真理无法证明,这也就意味着我们无法依靠形式化系统来回答所有问题。
这个定理不仅有着哲学上的意义,也对计算机科学的基础有着深刻的影响。
另一个例子是图灵测试。
图灵测试是一个人工智能的测试方法,它考察的是计算机是否具有智能。
图灵测试包含了一些哲学上的假设,如文明的背景知识和语言的使用能力,这些假设也影响了智能的定义。
以上只是两个例子,实际上哲学和计算机科学的联系远不止于此。
2. 人工智能和道德哲学随着人工智能的发展,越来越多的人关注人工智能的道德问题。
人工智能是否具有道德责任?如果具有道德责任,那么这个责任应该如何归属?这些都是值得深思的问题。
道德哲学在这里发挥了重要作用。
道德哲学提供了对于道德问题的思考框架和理论基础。
对于人工智能的道德问题,我们可以利用道德哲学的工具来进行分析和讨论。
例如,对于人工智能的道德责任问题,伦理学中的责任理论可以提供一些启示。
责任理论认为,责任可以分为多个层次,例如法律责任、道德责任、事实责任等。
我们可以利用这个理论来界定人工智能的责任,可以讨论人工智能与人类的道德责任的协调关系等等。
3. 数学和形而上学数学在计算机科学中扮演着至关重要的角色。
但是,数学中也有涉及形而上学的问题。
例如“零”这个概念,是数学中的一个基本概念,但是它具有诸如无形性、无限性等等形而上学上的特质。
对于数学中的形而上学问题,我们也可以从哲学角度进行思考。
形而上学研究的是物质世界的本质和结构,我们可以运用形而上学的思想和方法来理解数学中的形而上学问题。
4. 计算机伦理学计算机伦理学是计算机科学与伦理学的交叉学科。
计算机的心智—操作系统之哲学原理教学设计1. 引言作为计算机科学中最基本和重要的课程之一,操作系统在计算机科学教育的地位逐渐提高。
在本文中,我们将研究操作系统课程设计中的哲学原理,探讨如何在课程设计中将哲学原理带入教学中,以达到更好的教育效果。
2. 操作系统的哲学原理哲学是寻找事物本质的学问,操作系统这个庞大的软件体系也有其哲学原理。
可以说,操作系统最基本的哲学原理是资源分配和管理原理。
在计算机中,硬件资源有限,需要操作系统对资源进行统一分配和管理,以满足用户需求。
其次,操作系统对任务的调度也是一项非常重要的哲学原理,通过合理的任务调度,提高计算机的效率和性能。
3. 教学设计3.1 教学目标操作系统课程设计的主要教学目标是让学生了解操作系统的原理以及如何进行操作系统开发。
通过对操作系统的学习,可以让学生了解计算机体系结构的基本原理、操作系统的发展历程、操作系统内部结构、操作系统的设计原则等基本概念。
为了达到这个目标,需要进行如下教学设计。
3.2 教学方法在操作系统课程的教学中,应该采用多种教学方法,如讲授、实验、讨论、课件演示等,能够满足学生的不同认知需求。
同时操作系统课程应该侧重于实践,在课程设计中增加项目和实验环节。
通过实践,可以让学生了解操作系统的原理,并进一步加深对操作系统工作原理的理解。
3.3 课程组织操作系统课程设计应该按照时间顺序,分别讲解操作系统课程的不同部分。
具体而言,应该从操作系统的基本结构、任务调度、内存管理、文件系统等基本功开始,逐步深入介绍操作系统的设计原理、内存保护、多用户操作系统、网络操作系统等操作系统的进阶主题,然后引导学生进行操作系统开发,将课程设计贯穿于整个课程的始终。
3.4 课程评价为了评价操作系统课程的教学效果,应该从实践中综合考虑各个方面的教学效果。
评价标准包括学生对操作系统工作原理的理解、操作系统设计能力、计算机专业素养、语言表达能力等方面的内容。
评价方式可以通过考试、报告、实验、项目和表现等多种方式进行。
计算机中也有哲学问题?展开全文昨天我们仅以历史学为例,讲述了近代学科独立后,哲学怎样重新站稳脚跟,进而借鉴其他学科发展自己。
今天我们再以更多的学科为例,详细讲述哲学其它领域的合作关系。
再比如语言学。
一直以来,人们认为思想决定语言:我们先是在头脑中闪现一个念头,接下来才会着手用语言去整理它们、表述它们——思想总在语言之先。
不仅如此,思想还超越于语言之上。
语言能表达出来的,思想一定已经触及到了,而思想能延伸的地方,语言却有可能鞭长莫及,只好陷入“不可说”的境地。
后来,哲学家们发现思想和语言的关系可能被颠倒了,不是思想在语言之先,而是语言在思想之先,再不济,这二者也是同构的。
也就是说,语言是思想的载体,语言所到达不了的地方,思想也无权问津。
那些所谓神秘主义的思想,那些不可言说的体验,其实里面空无一物,因为我们说不清它们,所以肯定也无法悟到它们。
既然思维和语言具有同构性,那么,要想研究人类自身的思维,就只要分析出语言的结构就行了。
从我们的语言习惯、语法、词性分类等方面着手,去研究我们是怎样进行思考的,这已经成为现代哲学的一个重要研究方向。
这样一来,语言学就成为哲学举足轻重的合作伙伴。
它可以为哲学提供重要的研究素材,甚至语言学中的很多概念和研究范式可以被哲学直接借鉴,来壮大语言哲学的研究力量。
还有心理学。
近代以来,哲学在认识论上取得长足的进展。
认识论着重研究我们所有的认识活动是怎样发生的,以及我们为什么认定自己的认识与现实相符合。
用康德的话来说就是“我们可以知道什么?”。
这些认识论问题本身就和人类心理或大脑活动密切相关。
19世纪末20世纪初,心理学从哲学中的独立出来,它也想把认识论问题抢在自己手里,但这样一来哲学就可能失去很大一部分家底,于是哲学界就出现了“反对心理主义”的浪潮。
经此一役,不仅哲学保留了对认识论问题的研究权,心理学也可以继续从生理的角度、用科学的语言揭示人类的意识活动,多么皆大欢喜。
更好的是,心理学领域取得的研究成果也可以被哲学所采纳。
浅谈计算机科学中的哲学智慧浅谈计算机科学中的哲学智慧【摘要】计算机及其科学是自上世纪以来人类最具想象力的创造和最具哲学智慧的学科,而哲学思想是科学技术的源头,所以计算机科学的思想渊源就是哲学,并且计算机技术当中蕴含着丰富的哲学方法。
【关键词】计算机;哲学;科学自1946年2月14日世界上第一台计算机ENIAC(Electronic Numerical Integrator And Calculator)在美国宾夕法尼亚大学诞生以来,计算机科学技术迅猛发展,元器件体积越来越小,存贮容量不断增加,运算速度大幅提高。
虽然计算机的发明和发展属于科学技术范畴,但是,其硬件制造、操作系统设计等无不与人类的哲学思想紧密相联,处处充满哲学思想和智慧。
一、简单的自然在与大自然相处的过程中,人们发现,事物都存在两种对立的状况,例如天地、水火、生死、有无……为了表示这两种状况,人们发明了两种简单的状态,即阳和阴。
但是,世界上的事物其实并不仅有两种状况,而且对立的两种状况往往也是可以相互转换的。
为了表示事物更多的状况和发展变化,聪明的中国人创造了八卦。
阳和阴是卦的基础,也可以说,是我们的祖先观察自然、感悟人生的智慧结晶。
据说在发明计算机时,西方科学家们受到了东方古代哲学思想的启发。
众所周知,计算机基本计数系统为二进制,即“0”和“1”,这与“阴”和“阳”是相对应的。
在今天的计算机系统中,一个字节(byte)由八位(bit)构成,最多28=256中情况。
当然,这样少的状态,肯定不足以表示千变万化的世界。
于是,科学家又发明了字(word)的概念,即将两个以上的字节合并起来。
如果两个字节合并,即16位,可以表示216=65536种状态;如果三个字节合并,即24位,可以表示224=16777216种状态;如果四个字节合并,即32位,可以表示232=4294967296种状态。
依次类推,如果是八个字节合并,即64位,能表示的状态就相当可观了。
然而,即便如此,在博大的世界面前,64位的二进制状态所能表示的状况依旧很不足。
世界上可能远远不止264种事物,更何况每种事物还自己的特有属性和不同状态。
于是,科学家们又发明了相对独立的编码系统。
不同的对象只有在相应的系统里才能被正确解读,否则毫无意义。
通过这样的处理,有效地避免了相同编码可能引起的错误,更重要的是,大大地扩展了每个系统的相对独立空间,极大地提高了计算机的存储和运算能力。
在数据总线32位的计算机中,图像解码器能够轻松地解读色深24位的图像。
每个像素占用3个字节,从纯黑色(0,0,0)到纯白色(255,255,255),总共可有16777216种不同的组合,足以表现色彩斑斓的世界了。
从2位“0”和“1”到64位“0”和“1”,两个简单的数字不断重复就能够描述博大多彩的世界,在计算机发明的初期,科学家们需要有多么大的勇气和多么丰富的想象力才能坚持下去,以完成这个看来似乎不可能完成的任务。
二、逻辑的世界计算机科学是“1”和“0”的世界,是高电平和低电平的世界,是“联通”和“断开”的世界,是“真”和“假”的世界,是逻辑的世界。
古希腊杰出的思想家亚里士多德(B.C.384~B.C.322年)被人们公认为逻辑学的创始人,他将关于科学证明的论述从几何学中抽象出来,形成了以同一律、矛盾律、排中律三大基本规律为核心的逻辑体系。
亚里士多德强调思维形式与存在形式的一致性,认为逻辑的形式是客观事物存在形式的反映。
在亚里士多德看来,形式逻辑不仅存在于是思维之中,也存在于经验世界之中,所以,世界也是形式逻辑的。
在今天的计算机科学中,形式逻辑的规则得到了淋漓尽致地运用。
形式逻辑的同一律规定了“1”和“0”的确定性;矛盾律规定“1”不是“非1”,“0”不是“非0”;排中律规定“1”和“非1”、“0”和“非0”既不能同真,也不能同假,如果其中一个为真,另一个必定为假。
在计算机电路的设计中,形式逻辑具体表现为简单逻辑电路的与门、或门、非门运算,还表现为复合逻辑电路的与非门、或非门、与或非门运算。
计算机中绝大部分电路就是由这些可以对“1”和“0”两种相反状态进行运算的基本逻辑电路组成的,“1”表示真,“0”表示假,运算结果决定程序的走向,控制着计算机操作。
例如,以下C++代码即需要通过或门逻辑电路实现:if ( a == 1 || b == 1 )c = 1;elsec = 0;如果a为开关1,b为开关2,c为灯泡,在并联电路上,只要开关1和开关2有一个接通,灯泡c就能亮,只有两个开关都断开时,灯泡c才关闭。
a、b和c三者逻辑关系真值表如下:同样,计算机中所有数据都是以二进制形式存储和读取的。
“1”表示表示电路接通,有磁信号;“0”表示电路断开,无磁信号。
例如,字符“a”十六进制表示为61,转换为十进制为97,转换为二进制为01100001。
要将01100001存储到磁盘上,计算机要进行电磁转换:读到0时,计算机将磁头电路中电流关闭,磁头上磁信号消失,磁盘上记录磁信号为无;读到1时,计算机将磁头电路中电流接通,磁头上磁信号产生,磁盘上记录磁信号为有。
要将01100001从磁盘上读取,计算机要进行磁电转换:如果磁头没有感应到磁信号,计算机磁头电路中电流关闭,输出“0”;如果磁头感应到磁信号,计算机磁头电路中电流接通,输出“1”。
字符“a”在磁盘上就是一连串断断续续的磁信号,用二进制表示即为一连串交替出现的“0”和“1”,其存储和读取过程如下图所示:二进制0 1 1 0 0 0 0 1磁信号今天的计算机科学家似乎正是在实践亚里士多德的哲学思想。
他们殚精竭虑,尽管取得了一些成功,但要走的路还很长。
三、算法中的智慧算法是计算机科学的重要组成部分。
没有算法就没有软件,而对于计算机来说,没有软件就像人没有了思维能力,没有了思想。
算法是经验的总结,是人类智慧的结晶,闪烁着哲学思想的火花。
(一)循环算法中的“量变”与“质变”量变是质变的基础,任何事物在发生质变前都有赖于量的积累。
反映到现实生活中,我们要做成任何事情,都必须朝着目标一步一步地向前推进。
那么,在计算机中,如何实现类似的目标呢?可以用下面的循环语句来实现:for ( i = 0; i < n; i++ ){a[i] = b[i];}这是将数组b中的各元素的值赋值给数组a,逐个赋值,直到所有的元素赋值完,通过单个元素的操作,最后成为整个数组的赋值。
在程序设计中,程序员大量使用循环语句,因为循环语句是实现量变到质变哲学思想最有力的工具。
(二)二分法中的“一分为二”在计算机程序设计的检索算法中,有一种称为二分查找法的,充分体现了物质无限可分的哲学思想。
二分法首先假定,有一组数字或字符串已经按照升序(或降序)排好,要在其中查找某个数字或字符串,我们每次只需要将要查找的数字或字符串与这一组数据处于中间位置的那个进行比较,如果比处于中间位置的那个小,我们就到左半部分去查找,反之,我们就到右半部分去查找。
再将要查找的数字或字符串与这一半数据处于中间位置的那个进行比较,视大小决定是到一半数据的左半部分查找还是右半部分查找。
如此不断重复地使用同样的方法,直至找到或找不到。
例如,在一组升序数中查找3:-1 0 1 3 4 6 8 9 10-1 0 1 31 33二分查找法将数据从1分成1/2、1/4、1/8……使查找效率成倍提高。
由于查找目标是确定的,与物质无限可分的思想不同,二分查找法实际上运用的是一种有限可分的思想。
(三)递归方法中“矛盾”的化解递归方法是计算机科学中一种很重要的方法。
所谓递归就是将一个较大的问题归约为一个子问题,子问题再归约为子问题,直到最后一个子问题,不同层次的子问题与原问题在结构上是相同的,解决问题的方法就是将最后一个子问题作为出口,层层向回求解。
从程序设计的角度看,递归方法就是程序调用自身,层层嵌套;程序从嵌套最深的内层开始,逐步向外层求解。
例如求解n!问题:int f(int n){if ( n == 1 )return 1;elsereturn n * f(n-1);}因为1! = 1是已知的,所以求解n!时,n = n * (n-1)!,依赖于(n-1)!的值,依次类推,直到2!依赖于1!,到达递归出口,即可求解。
实际上,计算机科学中的很多问题,都要求我们首先对实际问题进行具体分析,从问题本身抽象出一个数学模型,然后设计一个符合这个数学模型的算法,最后根据算法编写程序,运行程序以解决问题。
从哲学意义上讲,就是要求我们透过表面现象,抓住主要矛盾,深入分析本质,掌握变化规律,形成正确认识,最终解决问题。
这是我们解决实际问题一种十分有效的方法。
四、具体与抽象的哲学方法认识从实践中产生,又反过来指导实践,这就是实践、认识、再实践、再认识的认识论思想。
在计算机科学中,面向对象的程序设计方法深刻体现了认识论的一般规律,充分展示了具体——抽象——具体的哲学方法。
面向对象的思想就是用面向对象的观点和方法来认识和描述客观世界。
客观世界中的任何事物都可以称为对象,面向对象就是从客观实际出发,具体对象具体分析,去粗取精,去伪存真,由此及彼,由表及里,建构关于对象的数据模型和对象间的通信关系。
例如,北大学生都是有姓名、性别和学号的,我们就可以依据这些得到关于北大学生的抽象概念;当然,如果对象具有某些动作特性,也可以作为操作考虑进去。
于是,我们可以建立以下关于北大学生的数据模型:class PKU_Student{public:string Name;string Sex;int No;PKU_Student(string name, string sex, int no){Name = name;Sex = sex;No = no;}};关于北大学生的数据模型是从许许多多北大学生的特性抽象而得来的,北大学生作为对象是具体的,北大学生的类概念是抽象的,这个阶段是一个从具体到抽象的过程。
有了抽象的类概念之后,我们就可以用它来方便地解决具体问题了。
例如,如果我们需要记录一个北大学生的有关信息,就可以:PKU_Student studentA("John","male",12715);语句PKU_Student studentA就是创建一个具体的对象,括号中的三个参数是将详细信息赋予我们创建的对象。
PKU_Student是抽象的类概念,而studentA是具体的对象,这个阶段是一个从抽象到具体的过程。
实际上,不仅仅是应用软件,计算机操作系统的设计也普遍运用了由具体到抽象再到具体的哲学方法。
为了做到公平分配计算机资源,科学家依据生活中排队的方法创造了队列机制;为了提高运行效率,科学家模拟工作中分工协作的方法创造了并发机制;为了防止和打破无休止的僵持和停滞局面,科学家创造了各种消除进程死锁的机制。