说名词解术语——软件篇 马春江 1999年 第6期 07版 计算机硬件是软件运行的基础,而软件则是发挥硬件作用的关键。许多入门者除了学用各种软件外,还可能尝试着自己编编程序,那么建议最好先熟悉以下的基础名词,以便尽快进入角色。 #1 基础术语 程序: 用汇编语言、高级语言等开发编制出来的可以运行的文件。 软件: 从开发商的角度而言,软件就是全部程序和全部开发文档的集合。从用户的角度而言,软件应该是程序、说明书、服务的总合。所以买正版软件就理应得到正规说明书和维护、升级等相关服务。 数制: 虽然计算机能极快地进行运算,但其内部并不像人类在实际生活中使用的十进制,而是使用只包含0和1两个数值的二进制。当然,人们输入计算机的十进制被转换成二进制进行计算,计算后的结果又由二进制转换成十进制,这都由操作系统自动完成,并不需要人们手工去做,学习汇编语言,就必须了解二进制(还有八进制/十六进制)。 数据: 狭义的理解,数据就是数值,即0、1、2、3、4、5、6、7、8、9和符号、小数点组成的数值,广义地讲,计算机所能处理的数据是指计算机能接受、存储、处理的任何信息,除了数值外,还有字符数据、图形数据、音频数据、视频数据、控制信号数据等等。 数据类型: 在处理各种数据时,为了便于处理、查错和充分利用存储空间,许多开发环境都要求对数据类型进行说明,一般有整数型、实数型、字符串型、布尔型、日期型、备注型、浮点型、双精度型等等。 数据运算: 一般指对数据所施加的各种处理,如插入数据、修改旧数据、删除已无用的数据、查找数据、将数据按一定规则排序、打印数据等等。 数据结构: 在编程中,除了考虑功能如何实现外,还必须考虑到程序中所涉及到的数据组织方式,其一是为了提高执行效率;其二是在特定的功能中,必须将数据以特殊的结构进行存放。常用的数据结构有线性表、栈、队列、树、二叉树、图、哈希表等结构。 逻辑结构: 指对数据的组织形式,如社会生活中的人事组织可用树型逻辑结构表示,选择好逻辑结构对软件的实现有重大意义。 #1 开发术语 流程图: 使用图形表示算法的思路是一种极好的方法,因为千言万语不如一张图。流程图在汇编语言和早期的BASIC语言环境中得到应用,由于其中的转向过于任意,带来了许多副作用,现已趋向消亡。较新的是有利于结构化程序设计的PAD图,对PASCAL或C语言都极适用。 汇编语言: 计算机中真正可以处理的只是由“0”、“1”组成的二进制代码,这种指令代码易出错且不易修改,由于依赖于机器,使用极不方便,于是人们发明“指令的助记符”,用几个字母(往往就是其含义的英文单词或缩写)代替某条指令,如加法用ADD表示,这种符号系统的扩大就是汇编语言。使用汇编语言编程,优点是运行效率高,可直接对硬件内部进行控制,缺点是需对硬件有更深入的了解,而且编程效率不高,并且与机器的体系结构仍有一定的依赖关系。 汇编程序: 由于机器并不能直接识别和运行用汇编语言编制出的程序,必须先转换成对应的机器代码指令,这项工作不用手工完成,仅需交给称为“汇编程序”的软件处理一下,即可得到可以直接运行的程序文件。基于这种关系,人们将用汇编语言编出来的程序称为“源程序”,称用汇编程序处理后产生的程序为“目的程序”。 #1 高级语言: 由于汇编语言依赖于硬件体系,且助记符量大难记,于是人们又发明了更加易用的所谓高级语言。在这种语言下,其语法和结构更类似普通英文,且由于远离对硬件的直接操作,使得一般人经过学习之后都可以编程。 根据应用范围的不同和历史的发展,高级语言有很多种,如BASIC、FORTRAN、C、PASCAL、LISP、FOXPRO、COBOL。 解释程序: 对源程序边解释翻译成机器代码边执行的高级语言程序。由于它的方便性和交互性较好,早期一些高级语言采用这种方式,如BASIC、dBASE。但它的弱点是运行效率低,程序的运行依赖于开发环境,不能直接在操作系统下运行。 编译程序: 为了提高运行效率和对源程序的保密,人们推出了可以一次性将源程序转换成可执行代码的程序开发软件。它产生可以在操作系统下直接执行的程序,且运行速度比用解释程序执行快得多,但是它要求全部源程序的语法都必须正确,这样调试时就不太方便。为了融合解释和编译的优点,目前许多开发系统已同时提供这两种功能。 Bug: 程序中隐藏的功能缺陷或错误。由于现在的软件复杂程度早已超出了一般人能控制的范围,如Win95、Win98这样的较成熟的操作系统也会不定期地公布其中的Bug。如何减少以至消灭程序中的Bug,一直是程序员所极为重视的课题。 调试: 编好程序后,用各种手段进行查错和排错的过程。作为程序的正确性不仅仅表现在正常功能的完成上,更重要的是对意外情况的正确处理。注意,调试的指导思想是尽量证明该程序是有错的,而不是证明它是正确的。所以从心理学的角度考虑,开发人员和调试人员不应该是同一个人。 模块化: 按照功能将一个软件切分成许多部分单独开发,然后再组装起来,每一个部分即为模块。其优点是利于控制质量、利于多人合作、利于扩充功能等,是软件工程中一种重要的开发方法。 可移植性: 由于计算机的硬件体系结构不同,因而导致在某一类型机器上开发的软件不能在另一类计算机上运行,所以某一种语言开发环境开发出来的程序,如不用修改或只需极少量的修改便能在其它种类的计算机上运行,就是可移植性好。 过程: 建立模块化的主要机制,它主要用于完成特定的工作,可以返回某些运算的结果,也可以不返回任何结果。 单入口单出口: 为了保证开发程序的质量,要求过程中的数据流控制是必须在固定的程序段入口进入,固定的出口返回,不允许在编程中随意使用数据。 软件生命周期: 软件的产生直到报废的生命周期,周期内有问题定义、可行性分析、总体描述、系统设计、编码、调试和测试、验收与运行、维护升级到废弃等阶段,这种按时间分程的思想方法是软件工程中的一种思想原则,即按部就班、逐步推进,每个阶段都要有定义、工作、审查、形成文档以供交流或备查,以提高软件的质量。但随着新的面向对象的设计方法和技术的成熟,软件生命周期设计方法的指导意义正在逐步减少。 人工智能: 就是通过程序使计算机能进行一些思维推理,使其具备一定的环境适应、自动学习、自动决策等人类高级智能。目前在人机对话、智能机器人、专家系统、语言图像识别、问题求解、公式推导、定理证明等许多领域,人工智能都已有较成熟的系统,随着计算机硬件体系的进步,人工智能必将更深入人们的生活。 #1 操作术语 操作系统: 计算机硬件系统外面加载的第一道软件系统,专门用于管理计算机硬件和其它软件,响应用户对硬件和软件的操作,在微机上常见的有DOS、Windows3.2,Win95/98NT等。 安装程序: 由于目前的软件都涉及许多文件和子目录,所以一般都提供安装程序帮助用户自动化地安装全部文件,一般标准的安装程序均起名Setup.exe或Install.exe。 病毒: 一种计算机程序,它可以附属在可执行文件或隐藏在系统数据区中,在开机或执行某些程序后悄悄地进驻内存,然后对其它的文件进行传染,使之传播出去,然后在特定的条件下破坏系统或骚扰用户。目前已有较成熟的清除病毒软件,但是新病毒还是层出不穷,成为一大危害。 集成开发环境: 较早期程序设计的各个阶段都要用不同的软件来进行处理,如先用字处理软件编辑源程序,然后用链接程序进行函数、模块连接,再用编译程序进行编译,开发者必须在几种软件间来回切换操作。现在的编程开发软件将编辑、编译、调试等功能集成在一个桌面环境中,这样就大大方便了用户。 拷贝: 指将文件从一处复制一份完全一样的到另一处,而原来的一份依然保留。 删除: 指将文件从系统的目录清单中删掉,但许多情况下,用工具软件或Windows下自带的“回收站”均能恢复被删掉的文件,为了保险起见,用户最好养成对自己输入的文本或其它文件进行软盘备份,以防万一。 移动: 就是将拷贝操作和删除操作合二为一,原来的一份在拷贝完成后即被自动删掉。 共享: 这是在网络环境下文件使用时的一种设置属性,一般指多个用户可以同时打开或使用同一个文件(或数据)。 独占: 系指文件(或数据)同一时刻只能被一个用户打开,其它用户只能等待此用户放弃后,才能打开和使用它。 压包: 用工具软件将文件进行压缩存储的过程,常用的压包工具有WinZip、Arj等。 解包: 压包的反过程,即将压包文件还原成原来的文件。 加密: 在网络通讯中,为了保证传输数据的保密性,用密码对文件进行加密变换。 解密: 加密的反过程,使之变成可使用的正常数据。 上传: 本地计算机与其它计算机通过网络连接成功后,将本机文件拷贝到其它计算机中的过程。 下载: 在网络中,将对方计算机中的文件拷贝至本地计算机中的过程。 通配符: 在DOS操作系统下,为了提高对文件处理的效率,用*或?表示任意多个或一个字符,这样就可以一次性处理一批文件,如*.*即代表当前目录下的全部可见文件。 内部命令: 启动了DOS操作系统后,任何时候都能使用的命令,如DIR、COPY等,因为这样命令已编在COMMAND.COM文件中。 外部命令: 虽然也是DOS命令,但它们是经过同名的程序文件提供的功能,若程序文件被删除,则此命令将不可使用,如DISKCOPY、FORMAT等。 格式化: 指对磁盘进行使用前的预处理以便存入数据。一般而言,新盘是必须格式化的,而使用过的旧盘也可以格式化,格式化后磁盘上全部数据将被删除。 磁盘拷贝: 指将一张软盘的全部内容原样不变地复制在另一张同样规格的软盘上,因为软盘上可能有系统数据区或被隐含的文件或子目录,所以不能用一般的复制操作进行磁盘拷贝,只能用如DISKCOPY命令或使用HD COPY等工具软件进行磁盘拷贝。