浅谈计算机科学中的哲学智慧.doc

上传人:F****n 文档编号:104925090 上传时间:2019-10-10 格式:DOCX 页数:8 大小:29.16KB
返回 下载 相关 举报
浅谈计算机科学中的哲学智慧.doc_第1页
第1页 / 共8页
浅谈计算机科学中的哲学智慧.doc_第2页
第2页 / 共8页
浅谈计算机科学中的哲学智慧.doc_第3页
第3页 / 共8页
浅谈计算机科学中的哲学智慧.doc_第4页
第4页 / 共8页
浅谈计算机科学中的哲学智慧.doc_第5页
第5页 / 共8页
点击查看更多>>
资源描述

《浅谈计算机科学中的哲学智慧.doc》由会员分享,可在线阅读,更多相关《浅谈计算机科学中的哲学智慧.doc(8页珍藏版)》请在金锄头文库上搜索。

1、浅谈计算机科学中的哲学智慧浅谈计算机科学中的哲学智慧【摘要】计算机及其科学是自上世纪以来人类最具想象力的创造和最具哲学智慧的学科,而哲学思想是科学技术的源头,所以计算机科学的思想渊源就是哲学,并且计算机技术当中蕴含着丰富的哲学方法。【关键词】计算机;哲学;科学自1946年2月14日世界上第一台计算机ENIAC(Electronic Numerical Integrator And Calculator)在美国宾夕法尼亚大学诞生以来,计算机科学技术迅猛发展,元器件体积越来越小,存贮容量不断增加,运算速度大幅提高。虽然计算机的发明和发展属于科学技术范畴,但是,其硬件制造、操作系统设计等无不与人类的

2、哲学思想紧密相联,处处充满哲学思想和智慧。一、简单的自然在与大自然相处的过程中,人们发现,事物都存在两种对立的状况,例如天地、水火、生死、有无为了表示这两种状况,人们发明了两种简单的状态,即阳和阴。但是,世界上的事物其实并不仅有两种状况,而且对立的两种状况往往也是可以相互转换的。为了表示事物更多的状况和发展变化,聪明的中国人创造了八卦。阳和阴是卦的基础,也可以说,是我们的祖先观察自然、感悟人生的智慧结晶。据说在发明计算机时,西方科学家们受到了东方古代哲学思想的启发。众所周知,计算机基本计数系统为二进制,即“0”和“1”,这与“阴”和“阳”是相对应的。在今天的计算机系统中,一个字节(byte)由

3、八位(bit)构成,最多28256中情况。当然,这样少的状态,肯定不足以表示千变万化的世界。于是,科学家又发明了字(word)的概念,即将两个以上的字节合并起来。如果两个字节合并,即16位,可以表示21665536种状态;如果三个字节合并,即24位,可以表示224种状态;如果四个字节合并,即32位,可以表示232种状态。依次类推,如果是八个字节合并,即64位,能表示的状态就相当可观了。然而,即便如此,在博大的世界面前,64位的二进制状态所能表示的状况依旧很不足。世界上可能远远不止264种事物,更何况每种事物还自己的特有属性和不同状态。于是,科学家们又发明了相对独立的编码系统。不同的对象只有在相

4、应的系统里才能被正确解读,否则毫无意义。通过这样的处理,有效地避免了相同编码可能引起的错误,更重要的是,大大地扩展了每个系统的相对独立空间,极大地提高了计算机的存储和运算能力。在数据总线32位的计算机中,图像解码器能够轻松地解读色深24位的图像。每个像素占用3个字节,从纯黑色(0,0,0) 到纯白色(255,255,255),总共可有种不同的组合,足以表现色彩斑斓的世界了。从2位“0”和“1”到64位“0”和“1”,两个简单的数字不断重复就能够描述博大多彩的世界,在计算机发明的初期,科学家们需要有多么大的勇气和多么丰富的想象力才能坚持下去,以完成这个看来似乎不可能完成的任务。二、逻辑的世界计算

5、机科学是“1”和“0”的世界,是高电平和低电平的世界,是“联通”和“断开”的世界,是“真”和“假”的世界,是逻辑的世界。古希腊杰出的思想家亚里士多德(B.C.384B.C.322年)被人们公认为逻辑学的创始人,他将关于科学证明的论述从几何学中抽象出来,形成了以同一律、矛盾律、排中律三大基本规律为核心的逻辑体系。亚里士多德强调思维形式与存在形式的一致性,认为逻辑的形式是客观事物存在形式的反映。在亚里士多德看来,形式逻辑不仅存在于是思维之中,也存在于经验世界之中,所以,世界也是形式逻辑的。在今天的计算机科学中,形式逻辑的规则得到了淋漓尽致地运用。形式逻辑的同一律规定了“1”和“0”的确定性;矛盾律

6、规定“1”不是“非1”,“0”不是“非0”;排中律规定“1”和“非1”、“0”和“非0”既不能同真,也不能同假,如果其中一个为真,另一个必定为假。在计算机电路的设计中,形式逻辑具体表现为简单逻辑电路的与门、或门、非门运算,还表现为复合逻辑电路的与非门、或非门、与或非门运算。计算机中绝大部分电路就是由这些可以对“1”和“0”两种相反状态进行运算的基本逻辑电路组成的,“1”表示真,“0”表示假,运算结果决定程序的走向,控制着计算机操作。例如,以下C+代码即需要通过或门逻辑电路实现:if ( a = 1 | b = 1 )c = 1; else c = 0;如果a为开关1,b为开关2,c为灯泡,在并

7、联电路上,只要开关1和开关2有一个接通,灯泡c就能亮,只有两个开关都断开时,灯泡c才关闭。a、b和c三者逻辑关系真值表如下:aBc000101011同样,计算机中所有数据都是以二进制形式存储和读取的。“1”表示表示电路接通,有磁信号;“0”表示电路断开,无磁信号。例如,字符“a”十六进制表示为61,转换为十进制为97,转换为二进制为。要将存储到磁盘上,计算机要进行电磁转换:读到0时,计算机将磁头电路中电流关闭,磁头上磁信号消失,磁盘上记录磁信号为无;读到1时,计算机将磁头电路中电流接通,磁头上磁信号产生,磁盘上记录磁信号为有。要将从磁盘上读取,计算机要进行磁电转换:如果磁头没有感应到磁信号,计

8、算机磁头电路中电流关闭,输出“0”;如果磁头感应到磁信号,计算机磁头电路中电流接通,输出“1”。字符“a”在磁盘上就是一连串断断续续的磁信号,用二进制表示即为一连串交替出现的“0”和“1”,其存储和读取过程如下图所示:二进制01100001磁信号 今天的计算机科学家似乎正是在实践亚里士多德的哲学思想。他们殚精竭虑,尽管取得了一些成功,但要走的路还很长。三、算法中的智慧算法是计算机科学的重要组成部分。没有算法就没有软件,而对于计算机来说,没有软件就像人没有了思维能力,没有了思想。算法是经验的总结,是人类智慧的结晶,闪烁着哲学思想的火花。(一)循环算法中的“量变”与“质变”量变是质变的基础,任何事

9、物在发生质变前都有赖于量的积累。反映到现实生活中,我们要做成任何事情,都必须朝着目标一步一步地向前推进。那么,在计算机中,如何实现类似的目标呢?可以用下面的循环语句来实现:for ( i = 0; i n; i+ )ai = bi;这是将数组b中的各元素的值赋值给数组a,逐个赋值,直到所有的元素赋值完,通过单个元素的操作,最后成为整个数组的赋值。在程序设计中,程序员大量使用循环语句,因为循环语句是实现量变到质变哲学思想最有力的工具。(二)二分法中的“一分为二”在计算机程序设计的检索算法中,有一种称为二分查找法的,充分体现了物质无限可分的哲学思想。二分法首先假定,有一组数字或字符串已经按照升序(

10、或降序)排好,要在其中查找某个数字或字符串,我们每次只需要将要查找的数字或字符串与这一组数据处于中间位置的那个进行比较,如果比处于中间位置的那个小,我们就到左半部分去查找,反之,我们就到右半部分去查找。再将要查找的数字或字符串与这一半数据处于中间位置的那个进行比较,视大小决定是到一半数据的左半部分查找还是右半部分查找。如此不断重复地使用同样的方法,直至找到或找不到。例如,在一组升序数中查找3:-1013468910-1013133二分查找法将数据从1分成1/2、1/4、1/8使查找效率成倍提高。由于查找目标是确定的,与物质无限可分的思想不同,二分查找法实际上运用的是一种有限可分的思想。(三)递

11、归方法中“矛盾”的化解递归方法是计算机科学中一种很重要的方法。所谓递归就是将一个较大的问题归约为一个子问题,子问题再归约为子问题,直到最后一个子问题,不同层次的子问题与原问题在结构上是相同的,解决问题的方法就是将最后一个子问题作为出口,层层向回求解。从程序设计的角度看,递归方法就是程序调用自身,层层嵌套;程序从嵌套最深的内层开始,逐步向外层求解。例如求解n!问题:int f(int n) if ( n = 1 ) return 1; else return n * f(n-1);因为1! = 1是已知的,所以求解n!时,n = n * (n-1)!,依赖于(n-1)!的值,依次类推,直到2!依

12、赖于1!,到达递归出口,即可求解。实际上,计算机科学中的很多问题,都要求我们首先对实际问题进行具体分析,从问题本身抽象出一个数学模型,然后设计一个符合这个数学模型的算法,最后根据算法编写程序,运行程序以解决问题。从哲学意义上讲,就是要求我们透过表面现象,抓住主要矛盾,深入分析本质,掌握变化规律,形成正确认识,最终解决问题。这是我们解决实际问题一种十分有效的方法。四、具体与抽象的哲学方法认识从实践中产生,又反过来指导实践,这就是实践、认识、再实践、再认识的认识论思想。在计算机科学中,面向对象的程序设计方法深刻体现了认识论的一般规律,充分展示了具体抽象具体的哲学方法。面向对象的思想就是用面向对象的

13、观点和方法来认识和描述客观世界。客观世界中的任何事物都可以称为对象,面向对象就是从客观实际出发,具体对象具体分析,去粗取精,去伪存真,由此及彼,由表及里,建构关于对象的数据模型和对象间的通信关系。例如,北大学生都是有姓名、性别和学号的,我们就可以依据这些得到关于北大学生的抽象概念;当然,如果对象具有某些动作特性,也可以作为操作考虑进去。于是,我们可以建立以下关于北大学生的数据模型:class PKU_Studentpublic:string Name;string Sex;int No;PKU_Student(string name, string sex, int no)Name = nam

14、e;Sex = sex;No = no;关于北大学生的数据模型是从许许多多北大学生的特性抽象而得来的,北大学生作为对象是具体的,北大学生的类概念是抽象的,这个阶段是一个从具体到抽象的过程。有了抽象的类概念之后,我们就可以用它来方便地解决具体问题了。例如,如果我们需要记录一个北大学生的有关信息,就可以:PKU_Student studentA(John,male,12715);语句PKU_Student studentA就是创建一个具体的对象,括号中的三个参数是将详细信息赋予我们创建的对象。PKU_Student是抽象的类概念,而studentA是具体的对象,这个阶段是一个从抽象到具体的过程。实

15、际上,不仅仅是应用软件,计算机操作系统的设计也普遍运用了由具体到抽象再到具体的哲学方法。为了做到公平分配计算机资源,科学家依据生活中排队的方法创造了队列机制;为了提高运行效率,科学家模拟工作中分工协作的方法创造了并发机制;为了防止和打破无休止的僵持和停滞局面,科学家创造了各种消除进程死锁的机制。可以说,计算机科学中由具体抽象而来的方法和机制比比皆是,而我们在计算机上每一次点击鼠标或输入数据,就是这些抽象的方法和机制在悄然帮助我们调度计算机资源,以完成我们的具体任务。毫无疑问,计算机及其科学是一个世纪以来人类最重要的发明,它改变了世界,同时也改变了人类的思维方式。然而,我们在为科学家们的聪明才智叹为观止的时候,千万不要忘记,也许从科学家思考发明计算机的那一天起,人类的思维就已经走入难以回头的死胡同。无论是普林斯顿结构还是哈佛结构的计算机,其基本机制都是建立在二进制逻辑之上的。这种机制是脱离了具体对象和内容的一种抽象,是与内容分离的纯粹的形式逻辑;而人类思

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > 教学/培训

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号