自然辩证法和计算机语言发展一九九三年美国的克林顿政府提出了“信息高速公路”计划,从而在这十多年间在全球范围内引发了一场信息风暴,信息技术几乎触及了现代生活的方方面面,毫不夸张的说没有了信息技术,现代文明的生活将无从谈起;作为信息技术中最重要的部分,计算机技术无疑是其发展的核心问题,而我们知道计算机只是一台机器,它只能按照计算机语言编好的程序执行,那么正确认识计算机语言的过去和未来,就是关系到计算机发展的重中之重;以自然辩证法的观点认识和分析计算机语言的发展历程,将有助于更加全面地推动计算机技术的发展,有助于更加准确地掌握计算机语言发展趋势。一、科学认识大门的钥匙--当代自然辩证法自然辩证法,是马克思主义对于自然界和科学技术发展的一般规律以及人类认识自然改造自然的一般方法的科学,是辩证唯物主义的自然观、科学技术观、科学技术方法论。它主要研究自然界发展的总规律,人与自然相互作用的规律,科学技术发展的一般规律,科学技术研究的方法。马克思、恩格斯全面地、系统地概括了他们所处时代的科学技术成功,批判吸取了前人的合理成分,系统地论述了辩证唯物主义自然观、自然科学发展过程及其规律性,以及科学认识方法的辩证法,以恩格斯的光辉著作《自然辩证法》为标志,创立了自然辩证法继续发展的广阔道路。自然辩证法是马克思主义哲学的一个重要组成部分。在辩证唯物主义哲学体系中,自然辩证法与历史唯物论相并列。它集中研究自然界和科学技术的辩证法,是唯物主义在自然界和科学技术领域中的应用,它的原理和方法主要适用于自然领域和科学技术领域。学习和运用自然辩证法将有助于我们搞清科学和哲学的关系,从而更加清楚地认识科学的本质和发展规律,更加全面的观察思考问题,只有加深了认识,我们才能更好地发挥主观能动性,迎接新的科学技术的挑战。下面我将以自然辩证法的观点来分析计算机语言的发展历程。二、计算机语言的发展历程和发展趋势计算机语言的发展是一个不断演化的过程,其根本的推动力就是抽象机制更高的要求,以及对程序设计思想的更好的支持。具体的说,就是把机器能够理解的语言提升到也能够很好的模仿人类思考问题的形式。计算机语言的演化从最开始的机器语言到汇编语言到各种结构化高级语言,最后到支持面向对象技术的面向对象语言。1、计算机语言的发展历史: 二十世纪四十年代当计算机刚刚问世的时候,程序员必须手动控制计算机。当时的计算机十分昂贵,唯一想到利用程序设计语言来解决问题的人是德国工程师楚泽(Konrad Zuse)。几十年后,计算机的价格大幅度下跌,而计算机程序也越来越复杂。也就是说,开发时间已经远比运行时间来得宝贵。于是,新的集成、可视的开发环境越来越流行。它们减少了所付出的时间、金钱(以及脑细胞)。只要轻敲几个键,一整段代码就可以使用了。这也得益于可以重用的程序代码库。随着C,PASCAL,FORTRAN,等结构化高级语言的诞生,使程序员可以离开机器层次,在更抽象的层次上表达意图。由此诞生的三种重要控制结构,以及一些基本数据类型都能够很好的开始让程序员以接近问题本质的方式去思考和描述问题。随着程序规模的不断扩大,在60年代末期出现了软件危机,在当时的程序设计模型中都无法克服错误随着代码的扩大而级数般的扩大,以至到了无法控制的地步,这个时候就出现了一种新的思考程序设计方式和程序设计模型-----面向对象程序设计,由此也诞生了一批支持此技术的程序设计语言,比如EIFFEL,C++,JAVA,这些语言都以新的观点去看待问题,即问题就是由各种不同属性的对象以及对象之间的消息传递构成。面向对象语言由此必须支持新的程序设计技术,例如:数据隐藏,数据抽象,用户定义类型,继承,多态等等。2、计算机语言的发展现状:目前通用的编程语言有两种形式:汇编语言和高级语言。汇编语言的实质和机器语言是相同的,都是直接对硬件操作,只不过指令采用了英文缩写的标识符,更容易识别和记忆。用汇编语言所能完成的操作不是一般高级语言所能实现的,而且源程序经汇编生成的可执行文件不仅比较小,而且执行速度很快。 高级语言是目前绝大多数编程者的选择。和汇编语言相比,它不但将许多相关的机器指令合成为单条指令,并且去掉了与具体操作有关但与完成工作无关的细节,例如使用堆栈、寄存器等,这样就大大简化了程序中的指令。同时,由于省略了很多细节,编程者也就不需要有太多的专业知识。高级语言主要是相对于汇编语言而言,它并不是特指某一种具体的语言,而是包括了很多编程语言,如目前流行的VB、VC、FoxPro、Delphi等,这些语言的语法、命令格式都各不相同。高级语言所编制的程序不能直接被计算机识别,必须经过转换才能被执行,按转换方式可将它们分为两类: 解释类和编译类。3、计算机语言的发展趋势:面向对象程序设计以及数据抽象在现代程序设计思想中占有很重要的地位,未来语言的发展将不在是一种单纯的语言标准,将会以一种完全面向对象,更易表达现实世界,更易为人编写,其使用将不再只是专业的编程人员,人们完全可以用订制真实生活中一项工作流程的简单方式来完成编程。下面是一张计算机语言发展图表,从中不难得出计算机语言发展的特性: ² 简单性提供最基本的方法来完成指定的任务,只需理解一些基本的概念,就可以用它编写出适合于各种情况的应用程序² 面向对象提供简单的类机制以及动态的接口模型。对象中封装状态变量以及相应的方法,实现了模块化和信息隐藏;提供了一类对象的原型,并且通过继承机制,子类可以使用父类所提供的方法,实现了代码的复用² 安全性用于网络、分布环境下有安全机制保证。² 平台无关性与平台无关的特性使程序可以方便地被移植到网络上的不同机器、不同平台。三、面向未来的汉语程序设计语言:从计算机诞生至今,计算机自硬件到软件都是以印欧语为母语的人发明的。所以其本身就带有印欧语的语言特征,在硬件上CPU、I/O、存储器的基础结构都体现了印欧语思维状态的"焦点视角",精确定义,分工明确等特点。计算机语言也遵照硬件的条件,使用分析式的结构方法,严格分类、专有专用,并在其发展脉络中如同他们的语言-常用字量和历史积累词库量极度膨胀。实际上,计算机硬件的发展越来越强调整体功能,计算机语言的问题日益突出。为解决这一矛盾,自六十年代以来相继有500多种计算机语言出现,历经五代,至今仍在变化不已。汉语没有严格的语法框架,字词可以自由组合、突出功能的整体性语言。在计算机语言问题成为发展瓶颈的今天,汉语言进入计算机程序设计语言行列,已经成为历史的必然。1、 发展汉语程序设计语言的理由:1)计算机语言问题解决,只能从人类语言中寻找解决方案; 2)计算机语言的现存问题是形式状态与功能需求的矛盾; 3)计算机硬件的发展已为整体性语言-汉语进入计算机程序设计语言提供了条件2、 汉语程序设计语言的技术特点:1)汉文字的常用字高度集中,生命力极强,能灵活组合,简明准确地表达日新月异的词汇,这些优点是拼音文字无法企及的。 2)汉语言的语法简易灵活,语词单位大小和性质往往无一定规,可随上下语境和逻辑需要自由运用。汉语言的思维整体性强,功能特征突出。 3)汉语程序设计语言的发明者采用核心词库与无限寄存器相结合的方法,实现了汉语言的词素自由组合;将编译器与解释器合一,使汉语程序设计语言既能指令又能编程;以独特的虚拟机结构设计,将数据流与意识流分开,达到汉语程序设计语言与汉语描述完全一致,通用自如。具有汉语言特性的汉语程序设计语言的出现,打破了汉语言不具备与计算机结合的条件而不能完成机器编码的神话。还为计算机科学与现代语言学研究提出了一条崭新的路径,它从计算机语言的角度,从严格的机械活动及周密的算法上,向世人证实汉语的特殊结构状态,及其特殊的功能。四、计算机语言之父——尼盖德尼盖德帮助因特网奠下了基础,为计算机业做出了巨大贡献。 尼盖德是奥斯陆大学的教授,因为发展了Simula编程语言,为MS-DOS和因特网打下了基础而享誉国际。克里斯汀•尼盖德于1926年在奥斯陆出生,1956年毕业于奥斯陆大学并取得数学硕士学位,此后致力于计算机计算与编程研究。1961年~1967年,尼盖德在挪威计算机中心工作,参与开发了面向对象的编程语言。因为表现出色,2001年,尼盖德和同事奥尔•约安•达尔获得了2001年A.M.图灵机奖及其它多个奖项。当时为尼盖德颁奖的计算机协会认为他们的工作为Java,C++等编程语言在个人电脑和家庭娱乐装置的广泛应用扫清了道路,“他们的工作使软件系统的设计和编程发生了基本改变,可循环使用的、可靠的、可升级的软件也因此得以面世。”尼盖德因其卓越的贡献,而被誉为“计算机语言之父”,其对计算机语言发展趋势的掌握和认识,以及投身于计算机语言事业发展的精神都将激励我们向着计算机语言无比灿烂的明天前进。总之,用科学的逻辑思维方法认识事物才会清楚的了解其过去、现在和未来,计算机语言的发展同样遵循着科学技术发展的一般规律,以自然辩证法的观点来分析计算机语言,有助于我们更加深入地认识计算机语言发展的历史、现状和趋势,有了自然辩证法这把开启科学认识大门的钥匙,我们将回首过去、把握现在、放眼未来,正确地选择计算机语言发展的方向,更好的学习、利用和发展计算机语言。