计算机软件技术基础(第2版)
上QQ阅读APP看书,第一时间看更新

1.2 计算机软件基础

硬件和软件是一个完整的计算机系统互相依存的两大部分,硬件是软件赖以工作的物质基础,软件的正常工作是硬件发挥作用的唯一途径。硬件是计算机的“躯体”,软件是计算机的“灵魂”,没有配备软件的计算机称为“裸机”,是没有多少实用价值的。计算机系统必须要配备完善的软件系统才能正常工作,且充分发挥其硬件的各种功能。

1.2.1 计算机软件的基本概念

计算机软件是计算机程序、程序所使用的数据以及有关的文档资料的集合,即软件=程序+数据+文档。计算机软件的作用是确定计算机做什么以及如何做,软件是用户与硬件之间的界面,它控制着硬件该做什么并如何去做。我们通常把不装任何程序的计算机称为“裸机”,硬件好像人的躯体,而软件就是灵魂,没有软件计算机就没有办法工作。软件按照功能一般分为系统软件和应用软件两类。

系统软件是直接控制和协调计算机、通信设备及其他外部设备的软件。这类软件一般紧靠硬件,是用户与计算机之间的第一层界面,它们与具体的应用无关,只在系统一级提供服务,它使用户可以高效率地使用和管理计算机。它是为用户提供友好界面、帮助用户编写和调试应用程序的通用程序集合。最典型的系统软件是操作系统,另外还有语言处理程序、服务性程序和数据库管理系统等。操作系统(Operating System,OS)是用于控制和管理计算机硬件系统和软件资源、方便用户使用、由一系列程序组成的系统软件。操作系统主要有进程和处理机调度、作业管理、存储管理、文件管理、设备管理5大管理系统。其目的有两个:一是尽可能地使计算机系统中的各种资源得到充分而合理的利用;二是可以方便用户使用计算机,为用户提供一个清晰、简洁、易于操作的界面。

应用软件是指用户借助系统软件而开发编制的用来解决各种实际问题的软件。应用软件处于计算机软件层的最外层,计算机系统中是否配置高质量、丰富的应用软件,将直接影响到计算机的应用范围和实际效益。常用的应用软件有工程计算软件,如天气预报的预报系统;文字处理软件,如Word文字处理软件;数据处理软件,如各种图形数据处理软件;实时过程控制软件,如监测控制和数据采集系统;辅助设计软件,如计算机绘图软件AutoCAD;智能处理软件,如医疗辅助诊断专家系统软件;信息处理软件,如高效的管理信息系统等。支持应用软件运行的系统软件称为应用软件环境,在不同的系统软件下开发的应用程序要在不同的系统软件下运行。

1.2.2 计算机语言

计算机作为一种运算工具,需要人们按照一定的运算步骤,一步步地操作,来完成某个问题的求解过程。而计算机是不可能直接理解人类所使用的自然语言的,计算机能接受的信息只能是“0”和“1”两种符号。因此,人类必须使用计算机所能接受的语言来告诉计算机完成什么操作,这就是计算机语言。

计算机语言用来书写计算机可以执行的程序。计算机只能够接受和处理二进制代码所表示的数据,所以为了实现对计算机的有效控制,人类发明了各种计算机程序设计语言来编制程序。常用的计算机程序设计语言有机器语言、汇编语言、高级语言和面向对象的语言等。

1)机器语言(Machine Language)。机器语言是一种用二进制代码“0”和“1”的形式表示的,能被计算机直接识别和执行的语言。用机器语言编写的程序称为计算机机器语言程序。机器语言是一种低级语言,用低级语言书写的程序不便于记忆、阅读和书写,所以一般不直接用机器语言来编写程序。

2)汇编语言(Assemble Language)。汇编语言是一种助记符表示的面向机器的程序设计语言。不同类型的计算机系统一般有不同的汇编语言,汇编语言的每条指令对应一条机器语言代码。汇编语言适用于编写直接控制机器操作的低层程序,它与机器密切相关,不容易使用。汇编语言同样十分依赖于机器硬件,移植性不好,但效率仍十分高,针对计算机特定硬件而编制的汇编语言程序,能准确发挥计算机硬件的功能和特长,程序精炼而质量高,所以至今仍是一种常用而强有力的软件开发工具。

3)高级语言(High Level Language)。人们从最初与计算机交流的经历中就意识到,应该设计一种语言接近于数学语言或人的自然语言,同时又不依赖于计算机硬件,编出的程序能在所有机器上通用。1954年,第一个完全脱离机器硬件的高级语言——FORTRAN问世了,60多年来,共有几百种高级语言出现,具有重要意义的有几十种。影响较大、使用较普遍的有FORTRAN、ALGOL、COBOL、BASIC、LISP、SNOBOL、PL/1、Pascal、C、PROLOG、Ada、C++、Visual C++、Visual Basic、Delphi、Java等。一般用高级语言编写的程序称为“源程序”,计算机是不能识别和执行的,计算机要把高级语言编写的源程序翻译成机器指令,通常有编译和解释两种方式。编译就是将整个源程序编译成目标程序,然后通过链接程序将目标程序链接成可执行程序。解释方式就是将源程序逐句翻译,翻译一句执行一句,一边翻译一边执行,不产生目标程序。