
1.1.1 计算机程序与程序设计
计算机程序的情况与前面介绍的日常生活中的程序性活动类似,这种情况可以帮助我们理解计算机的活动方式。当然,日常生活中的程序性活动可以有许多变化,人们参与时也不一定完全按程序的步骤做,可以有许多“灵活性”。而计算机不同,它对程序的执行是严格的、一丝不苟的,总是一步步地按程序中的指令办事,一点“商量”的余地也没有。
目前人们广泛使用的台式个人计算机、笔记本计算机、平板计算机、手机等设备,虽然外观各异,但都属于计算机(全称是“通用电子数字计算机”)的范畴,它们能完成的工作就是计算。计算机的最基本功能就是可以执行一组基本操作,每个操作完成一件很简单的计算工作,例如整数的加减乘除运算等。进而,计算机提供了一套指令,每种指令对应计算机硬件能执行的一个基本动作,使人们可以基于指令来编排程序,指挥计算机完成复杂的工作。
一个完整的计算机系统包括硬件系统和软件系统两大部分,并依靠硬件和软件的协同工作来完成各种计算任务。计算机硬件系统指构成计算机的所有物理部件的总和,它们看得见、摸得着,是一些实实在在的有形实体。计算机硬件系统采用冯·诺依曼体系结构,由控制器、运算器、存储器、输入设备和输出设备5个部分组成,这些部分连成一体,如图1-1所示。

图1-1 计算机硬件系统简图
控制器是计算机硬件的控制指挥中心,负责协调和指挥整个系统的操作。它的主要功能是解析程序指令,安排操作顺序,控制数据流向,产生各种控制信号,指挥各部件有条不紊地协调工作。
运算器是对数据进行加工、运算的部件,它接受控制器的指示,按照规则完成加、减、乘、除、比较等算术运算,还可以完成与、或、非等逻辑运算和一些其他操作。
运算器和控制器等部件构成了计算机硬件的核心,在目前的各种计算机硬件中,这两个部件一般被集成在同一块半导体芯片里,称为中央处理器(CPU)。
存储器是具有记忆功能的部件,用于存放程序和数据。现代计算机系统中的存储器可以分为两大类:内部存储器(简称内存,或称为“运行内存”)和外部存储器(简称外存)。
内部存储器可以直接与CPU交换信息,其特点是速度较快,但容量相对较小。计算机运行中使用的程序和数据都需要先装载到内存中。系统关机(电源断开)后,内存里的信息将全部丢失。
外部存储器通常通过接口电路和连线连接到主机。其特点是存储容量大,但存取速度相对内部存储器要慢很多,其中存储的信息具有持续性,不需要电源支持,系统关机后仍然存在。外部存储器用于长期存放计算机系统需要的系统软件的文件、应用程序、文档和数据等。当CPU需要执行保存在外存中的某部分程序和数据时,就需要把这些程序和数据由外存调入内存,以便CPU直接访问。目前常用的外存设备有硬盘、移动存储器(U盘)和光盘等。
输入设备是把程序和数据输入计算机的硬件装置,常用的输入设备有键盘、鼠标、扫描仪、条形码阅读器、光笔。输出设备负责输出运算的结果,常用的输出设备有显示器、打印机、绘图仪等。
在计算机系统中,各种硬件部件通过地址总线、数据总线、控制总线等连接在一起。然而,仅由硬件构成而没有安装任何软件的计算机系统只能称为裸机。裸机难以完成任何有用的工作。只有安装了软件的计算机系统才算是完整的,才能执行人们所需的工作。
计算机系统的软件分为两类:系统软件和应用软件。
系统软件(system software)指由计算机生产厂商(或“第三方厂商”)为用户使用计算机而提供的各种基本软件。常见的系统软件有操作系统、编程语言处理系统、数据库管理系统、网络通信软件、各类服务程序和工具软件等。系统软件以外的软件都称为应用软件(application software),是由专业人士或厂商为支持具体应用领域的工作、解决实际问题而开发的。应用软件用各种程序语言编写,可以满足人们各方面的需要,如办公软件、文字处理软件、网络浏览器、游戏软件、音频/视频制作和播放软件、计算机辅助设计软件、图形处理软件、压缩和解压缩软件、反病毒软件等都是应用软件。计算机用户利用各种应用软件完成自己的工作或满足日常生活的需要。
计算机硬件在CPU和系统软件的管理下,协调一致地工作。计算机能够自动完成各种数值运算和复杂的信息处理过程的基础就是存储程序和程序控制。计算机的运行过程可以简要描述为:将待执行的程序和待处理的数据由输入设备或外存装入内存;CPU从内存中取出程序的指令,根据需要到指定地址取出所需数据,并要求运算器执行指令的操作;运算结果存入内存,根据需要通过输出设备输出;整个过程都在CPU的控制器的管理下进行。
由此可见,人与计算机交流的基本方式就是提供要求计算机执行的程序(program,或称为“计算机程序”)。当计算机接受用户的命令去执行某个程序时,它就会按照程序的规定,一丝不苟地执行其中的指令,直至整个程序结束。
计算机是一种通用的计算机器,加上一个或一组程序后,它就会变为处理某个或某些专门问题、完成某种或某些特殊工作的专用机器。这种通用性与专用性的统一非常重要:一方面,计算机可以在大工厂里采用现代化生产方式大量制造;另一方面,通过运行不同程序,一台计算机可以在不同时间处理不同问题(如文字处理、上网浏览、玩游戏等),甚至同时处理许多不同的问题。这就是计算机强大功能的真谛。人们描述(编制、构造)计算机程序的工作被称为程序设计或者编程(programming),这种工作的产品就是程序。
程序、软件、应用软件和APP
程序是对一项计算任务的处理对象和处理规则的描述。人们编写完一个程序并交付用户使用时,通常还需要向用户提供配套的文档(通常包括设计说明书和使用手册等,可以是电子版或纸质版),以便用户了解程序的使用方式和规则。实现某种功能的程序(或一组程序)及其配套文档总称为一个软件。
计算机软件是计算机系统中程序和文档的总称,包含系统软件和应用软件两类(如上面正文所述)。
应用软件通常只能运行于特定的操作系统上。人们常把安装在智能手机上的应用软件称为APP(来源于英语单词“application”,读作/æp/或/eip/,中文用户通常读作/eipipi/)。
在当代,计算机快速发展并在各领域广泛应用,它对人类社会生活的各方面产生了深刻影响。计算机之所以能对人类社会发展产生这么大的影响,其原因不仅在于人们发明并大量制造了这样一种令人敬畏的奇妙机器,更重要的是人们开发了数量巨大、类型各异、能指挥计算机完成各种简单或复杂工作的程序。目前正在使用的计算机种类并不多,而正是数量繁多、功能丰富的程序给了计算机无穷无尽的生命力,改变了人们的工作和生活。