1.1.1 计算机与信息社会
电子计算机的出现和发展是近代科学技术的最伟大成就之一。从1946年第一台电子计算机问世以来,计算机的发展取得了令人瞩目的成就。今天,计算机科学与技术已作为一门先进的学科独立存在;计算机工业已成为改造传统工业、振兴国民经济的重要支柱产业;计算机在科学研究、工农业生产、国防建设以及社会各个领域的广泛应用已成为国家现代化的一个重要标志。
人类在改造客观世界的过程中,已经认识到文字、物质材料和能源是构成世界的三大要素。在人类社会文明的发展过程中离不开信息交流,计算机作为信息处理工具,在信息存储、处理和交流传播方面起着重要的作用。人类历史上曾经历了五次信息革命。第一次信息革命是语言的使用;第二次信息革命是文字的使用;第三次信息革命是印刷术的发明;第四次信息革命是电话、广播电视的使用。而从20世纪60年代开始的第五次信息革命产生的社会技术——信息技术,则是计算机、通信与控制技术相结合的技术,它标志着人类已经迈向信息社会。
文化是人类在社会历史发展中所创造的物质财富和精神财富的总和。可以认为,文化离不开语言。计算机技术已经创造并且还在继续创造出不同于传统自然语言的计算机语言。计算机语言已从简单的应用发展到了多种复杂的应用,并逐步发展到能像传统自然语言一样地表达和传递信息。可以说,计算机技术引起了语言的重构。同时,一个社会的文化模式是以它的记忆为基础的。数据库和网络技术的诞生使知识和信息的存储,在数量上与性质上都发生了质的变化,人们获得知识的方式也因此而发生了变化。文字的出现曾改变了人类历史的进程和文明的面貌,而数据库和网络技术的出现,则从根本上改变了静态的信息存储方式和局部的信息交换方式,人类开始进入了信息社会。
计算机技术使语言、知识及它们间的相互交流发生了根本性的变化,因此引起了思维概念和推理的改变。在1981年召开的第三次世界计算机教育会议上,第一次提出了计算机文化(Computer Literacy)的术语。即为了区别传统的人类文化,将人类具备的对自然语言的阅读和写作能力称为“第一文化”,将人类具备的对计算机语言的阅读和编程能力称为“第二文化”,也称为“计算机文化”。在当今社会,掌握计算机知识,提高应用计算机能力应当成为对人才素质最基本的要求。
计算机在信息社会中具有重要的地位。从广义上说,在信息社会中,计算机是一种能以高速、精确和可靠的方式进行信息处理的工具。计算机技术对信息的产生、收集、处理、存储和传播将发挥越来越重要的作用,计算机作为一种崭新的生产力将推动信息社会更快地向前发展。
计算机是一种在事先存入的程序控制下,能够接收数据、存储数据、处理数据和提供处理结果的电子设备。图1.1.1描述了计算机工作流程的简图,其中包括:输入、处理、存储和输出四个步骤。
图1.1.1 计算机工作流程
输入计算机的数据通常是指未经处理的原始数字、字符、图像或声音,经输入设备转换为二进制形式的数据,在计算机中预先存入的程序(指令的集合)控制下,按预定方式被处理、加工成有意义或有用的数据。通常将经计算机处理形成的有用数据称为信息。信息可以按用户要求的方式存储,或在输出设备中转换成用户可识别的报表或图表,或在显示屏上显示等。
一台计算机由硬件系统和软件系统两大部分组成,硬件是物质基础,而软件是计算机的灵魂。所有的软件,都是用计算机程序设计语言(programming language)编写的。程序是指计算机可以直接或间接执行的指令的集合。程序设计语言是一组用来定义程序的规则。这些规则包括:
1)字母表的定义;
2)词法规则:单词符号的形成规则(一个单词对应一条形成规则,规定了该单词由哪些字母按照什么顺序进行排列);
3)语法规则:语法单位的形成规则(语法单位包括:表达式、语句、模块、程序);
4)语义规则:单词符号和语法单位的含义规则;
5)语用规则:语义规则的发展和延伸,强调在一定的语境中使用单词和语法单位时体现出来的具体意义,要根据上下文(前、后内容)明确单词和语法单位的具体意义。
6)其他规则:包括类型使用规则、参数传递规则、作用域规则等。
计算机程序设计语言的发展,经历了从机器语言、汇编语言到高级语言的历程。
1.机器语言
计算机只能够理解二进制代码。一组有意义的二进制代码称为一条指令,包括操作码和地址码两个部分。二进制代码对应的程序设计语言,称为机器语言。对于指令的操作码与功能、指令格式、寻址方式、数据格式等,不同的计算机有不同的规定。多条二进制指令的集合,称为机器语言程序。
机器语言是第一代计算机语言。机器语言的字母表为{0,1};单词符号就只有二进制串(但可以表示操作码、地址码);语法单位包括机器指令和程序;语法规则规定了指令和程序的形成,语义规则规定了指令和程序的含义。
利用机器语言进行程序设计是十分繁琐的工作。机器语言程序(全由0、1构成)不便于阅读和编写,还容易出错(查找错误也十分困难)。由于每种计算机的指令系统往往各不相同,所以,在一台计算机上执行的程序,不能够在另一种计算机上执行,必须另编程序,造成可移植性差,不可避免重复工作。但由于使用的是针对特定型号计算机的语言,故而运算效率比较高。
2.汇编语言
为了克服机器指令难读、难编、难记和易出错的缺点,人们用与代码指令实际含义相近的英文缩写词、字母和数字等符号取代指令中的二进制代码(包括操作码和地址码),例如,用ADD代表加法,用B代表存储数据的某个单元的地址(就如电子科技大学可以代表成都市高新西区西源大道2006号)等,这样,人们能较容易读懂并理解程序,使得纠错及维护变得方便,这种程序设计语言称为汇编语言,即第二代计算机语言。然而计算机是不能够理解这些符号的,需要将这些符号翻译成计算机能够理解的二进制串,此翻译过程称为汇编(完成汇编的程序称为汇编程序)。
汇编语言字母表主要增加了英文字母;单词符号包括:操作码、内存符号、寄存器、数据;语法单位是汇编指令和程序。
汇编语言仍然是面向机器的语言,使用起来还是比较繁琐,通用性也差。但是,用汇编语言编写的程序,其目标程序占用内存空间少,运行速度快,有着高级语言不可替代的用途。
机器语言和汇编语言都是面向实际计算机的语言,统称为低级语言。
3.高级语言
程序设计语言对机器的过分依赖,要求使用者必须对硬件结构及其工作原理都十分熟悉,这对非计算机专业人员是难以做到的,对于计算机的推广应用不利。计算机事业的发展促使人们寻求与人类自然语言相接近且能为计算机所接受的通用易学的计算机语言。这种与自然语言相近并被计算机接受和执行的计算机语言称为高级语言。高级语言是面向用户的语言。无论何种机型的计算机只要配备上相应的高级语言的编译或解释程序,则用该高级语言编写的程序就可以运行。
1954年,第一个完全脱离机器硬件的高级语言FORTRAN问世了,近六十多年来,共有上千种高级语言出现,影响较大、使用较普遍的有FORTRAN、ALGOL、COBOL、BASIC、LISP、PASCAL、C、PROLOG、Ada、C++、VC、VB、DELPHI、JAVA等。
高级语言一般包含有四种成分:
数据成分:描述程序所涉及的数据;
运算成分:描述运算;
控制成分:表达程序的控制结构;
传输成分:表达数据的传输(输入输出、文件读写操作)。
高级语言的程序主要是描述计算机的解题过程,即描述复杂的加工处理过程,所以也称高级语言为面向过程语言。
高级程序设计语言的字母表主要包括英文字母、数字字符、运算符号、分界符号等;单词符号包括:关键字、标识符、常量、运算符和分界符;语法单位包括表达式、语句、模块和程序。具有较复杂的语法规则和语义规则。
计算机并不能直接地执行使用高级语言编写的源程序,源程序在输入计算机时,通过“翻译程序”翻译成机器语言形式的目标程序,计算机才能识别和执行。这种“翻译”通常有两种方式,即编译方式和解释方式。
编译方式是指将程序的源代码“翻译”成目标代码(机器指令),目标代码可以脱离其语言环境独立执行,效率较高。但源代码一旦进行修改,需要再重新编译生成新的目标文件才能执行。
解释方式是应用程序源代码一边由相应语言的解释器“翻译”成目标代码(机器语言),一边执行,因此效率比较低,而且不能生成可独立执行的可执行文件,应用程序不能脱离其解释器,但这种方式比较灵活,可以动态地调整、修改应用程序。
高级语言的发展经历了从早期语言到结构化程序设计语言,从面向过程到非过程化程序语言的过程。20世纪60年代中后期,软件越来越多,规模越来越大,而软件的生产基本上是各自为阵,缺乏科学规范的系统规划与测试、评估标准,大批耗费巨资建立起来的软件系统,由于含有错误而无法使用;人们感觉软件越来越不可靠,几乎没有不出错的软件,历史上称这段时期为“软件危机”时期。人们认识到:大型程序的编制不同于编写小程序,它应该是一项新的技术,应该像处理工程一样处理软件研制的全过程。1969年,提出了结构化程序设计方法,1970年,第一个结构化程序设计语言PASCAL语言出现,标志着结构化程序设计时期的开始。20世纪80年代,出现了面向对象的程序设计语言;直到今天,程序设计语言还在不断地发展。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。