编译程序的工作是这样的,输入源程序,对它进行加工处理,然后输出目标程序。加工处理并不简单,至少有五个阶段。第一阶段是词法分析,当此重任的程序叫“扫描器”,它对源程序的各个字符串进行扫描和分解。第二阶段是语法分析,由叫做“分析器”的程序来承担,根据语言的语法规则,把扫描器所提供的结果分析成各类语法组。第三阶段是产生中间代码,由“中间代码产生器”程序来完成,按第二阶段识别出的语法组产生相应的中间指令。第四阶段是优化,就是对中间代码进行加工变换,以便使生成的目标程序运行得更快更省内存。第五阶段是目标代码生成,按照优化后的中间代码和其他有关信息生成目标程序。这种目标程序可以在计算机上直接执行,执行这个目标程序就可以得到一个高级语言程序的结果。
在计算机上执行用高级语言编写的源程序,处理像上面所说的编译执行方式之外,还有一种解释执行方式。
解释执行方式与编译执行方式不同,它们的根本区别在于编译执行方式把源程序的执行过程分成编译和运行两大步,而解释方式则不然,它是按照语句中的动态顺序,直接地逐句进行分析解释,并马上执行。不难看出,解释程序是这样一种程序,它能够按照源程序在语句的动态顺序,逐句地分析解释并去执行,直到结束为止。同编译程序一样,解释程序也跟源语言及计算机有关,同一台计算机上应用不同的语言解释程序或编译程序是不同的,同一种语言在不同的计算机上的解释程序或编译程序也是不同的。编译程序和解释程序都属于系统程序。
计算机系统的总经理
计算机软件分为系统软件和应用软件两大类,其中系统软件面向计算机系统。系统软件的种类很多,操作系统是计算机系统的一种很重要的系统软件。
计算机高级语言的广泛使用促进了电子计算机的普及,电子计算机的广泛普及反过来也对计算机软件提出了更高的要求。要使用高级语言,计算机就必须配备必要的编译程序或解释程序。为了提高计算机的利用率,充分发挥它高速度处理消息的优势,需要让计算机采取多道并行的工作方式,让它的每一个部件像一个企业的每一个部门一样,各自有各自的职能,却又能够合成一个和谐的整体,这就必须要有一个高水平的“总经理”,这个“总经理”就是我们通常说的操作系统。
操作系统用于管理计算机的资源和控制程序的执行。比方说程序在执行之前,必须获得存储器资源才能装入,程序的执行必须用到处理器,在执行过程中又可能用到输入设备或输出设备、输入或输出数据等等。
提起计算机的资源,人们往往只看到中央处理器、存储器、输入/输出设备等硬件资源。事实上,除了硬件资源外,计算机系统还有另一类重要资源,这就是数据库、程序等信息资源。这两大类资源缺一不可。
从资源管理的角度看,操作系统有如下功能:处理器管理、存储管理、文件管理和作业管理。
对操作系统分类有不同的方法,比如按硬件系统的大小,可以分为大型机操作系统和微型机操作系统等。最常用的一种分类方法是按照操作系统提供的功能来分,大致可以分为六类:单用户操作系统、批处理操作系统、实时操作系统、分时操作系统、网络操作系统、分布式操作系统。
单用户操作系统的主要特征是一个计算机系统每次只能执行一个用户程序。
批处理操作系统是采用批量化处理作业技术的一种操作系统,它根据一定的策略将要求计算的一批算题按照一定的组合次序去执行,以便提高系统的运行效率。
单用户就好像是手工作坊小生产,一次生产一件;批处理则如同大工厂的批量生产。
“实时”是指计算机对外来信息要以足够快的速度进行处理,并且迅速作出反应。具有这种功能的计算机系统就叫做“实时系统”,它是不太需要人进行干预的监督控制系统。为这样的计算机配置的操作系统称为“实时操作系统”,这种操作系统是一位思维敏捷的奇才。
操作系统分时可以使一台计算机同时为许多终端用户服务,使每个终端用户都感到好像自己单独拥有这台计算机一样。这种操作系统就像魔术师,把一段段极短的时间段依次分配给用户,巧妙地满足了用户的需要。
提供网络通信和网络资源共享功能的操作系统称为网络操作系统,而用于管理分布系统资源的操作系统称为分布式操作系统。总之,操作系统在计算机系统中扮演着一个企业总经理的角色。它要管理好整个系统的资源,保证系统的正常运行,使整个系统经营有素、效益显著。
计算机操作系统最早是8位的,比较著名的有CP/M—80(CP/M的意思是微型计算机控制程序)操作系统,8位操作系统还有MP/M操作系统。16位的个人计算机操作系统当中,最著名的是MS—DOS操作系统。1995年微软公司推出了Windows95操作系统。计算机直接控制和管理计算机的硬件系统和软件资源的程序结合的操作系统称为磁盘操作系统,简称DOS操作系统。DOS操作系统是一种基本的软件,它使计算机系统和各个部件协调工作,并指挥它们如何一起运作,发挥各自的功能。DOS操作系统是字符型的计算机程序,用户必须用键盘把常人难以理解的指令敲进去,然后才能够在屏幕上显示出所需要的信息,这在很大程度上使大多数计算机用户感到困难。
1983年微软公司总裁比尔·盖茨设想应当开发一种图形操作系统。因为操作系统是计算机和用户之间的交流通道(人机界面),它应当使用户感到方便,这种人机界面应当是图形的。微软公司开发的这种图形计算机程序,就是我们现在常用的Windows操作系统。Windows操作系统的界面由容易识别的图形和意义清晰的文字组成,用户可以使用鼠标,在计算机屏幕上处理图像,并使若干“窗口”可以在屏幕上调用,对每个窗口运行不同的计算机程序。由于Windows操作系统相对于字符型计算机程序具有直观、形象、易学、易操作等强大优势,它迅速在广大电脑用户之间得到普及。1995年推出的Windows95更是在全世界掀起了一个热潮。
数据的仓库
我们已经知道,输入电子计算机的所有信息都是转换成数据存储的。我们每个部门都有大量的数据需要加工处理或长期保存。例如,学校的数据就少不了学生的姓名、性别、年龄、班级、考试科目、考试成绩等有关信息,其中包含的联系信息如哪些学生需要补考、平均成绩在90分以上的学生有哪些等。
人们把需要保存的数据集中存放在计算机里,形成一个类似仓库一样的通用的综合性数据集合,这个数据集合就是我们通常说的数据库(DataBase),简称DB,相应地帮助人们使用和修改这些数据的软件,就是数据库管理系统。用户借助数据库管理系统软件可以方便地编写有关数据库应用程序,实现对数据的存储、管理和使用。而且,用户不必了解数据在计算机内的存储方式,就可以处理数据,即使不懂计算机的用户也可以自如地用计算机进行数据管理。
目前数据库技术应用十分广泛,它具有数据可以共享、数据与程序的独立性较高、按一定的模式使数据结构化、数据的可扩充性和组合性强等优点,深受用户欢迎。
数据库的一个主要特点是,保护数据的安全性和可靠性以及正确性和有效性。然而,由于种种原因,数据库的安全性难以达到完美的境地。一方面,数据库中数据模型的加工技术在不断完善的过程中,数据库存在着被破坏的隐患和被入侵的危险;另一方面,数据库中大量数据集中存放,而且为各个用户共享,从而使安全性问题显得特别突出。为了加强数据库的安全性,人们必须采取一些安全措施。从物理角度出发,将数据以密码形式存储,加强警卫以识别用户身份,防止从通信线路上窃听或盗窃存储设备等。在系统处理上,常采用以下措施:设置用户口令,对用户身份进行鉴定;对用户权限进行限制,如用户可以读某些数据却不能改变其属性值,或者用户可以取得整体统计信息但不能取得个体信息等;建立日志文件,以监视数据库活动;对数据采用集中管理方式。此外,还强调对数据结构的隐蔽。
计算机软件与微软王国
提起计算机软件,每个人都会想到微软公司。提起微软公司,大概计算机界无人不知、无人不晓,它是计算机软件界的霸主,稳坐世界头号软件公司的金交椅。微软公司建立起了一个拥有数以亿计用户的Microsoft世界,成为名副其实的微软王国。
1964年美国著名的计算机基地达特茅斯学院的汤姆·库斯和约翰·凯孟尼创建了一种新的高级语言,这种语言语句简单、语法简洁、简便易学,很适合非计算机专业的人使用,它是“初学者的通用符号指令代码”,也就是著名的BASIC语言。
BASIC语言彻底打破了职业知识和技能的垄断,它把电脑语言从专业桎梏中解放出来,还给芸芸众生。BASIC语言不仅带来一场电脑语言的革命,而且也带来一场电脑的革命,BASIC语言带来的是个人电脑时代的最初信息。
多年以后,比尔·盖茨正是以BASIC为敲门砖,开创了微软公司的软件世界。微软公司是比尔·盖茨演出的舞台,比尔·盖茨是微软公司的灵魂。
比尔·盖茨于1955年出生于美国西北部濒临太平洋的西雅图市。比尔·盖茨的父亲是一位律师,母亲是一位教师。孩提时期的比尔·盖茨生性内向,在数学方面较有天赋。
1968年,比尔·盖茨进入湖滨中学,刚刚安装了PDP—10小型计算机终端的湖滨中学成为全美最初的一批拥有计算机的中学。比尔·盖茨和比他大两岁的保罗·艾伦成了莫逆之交,他们同时迷上了计算机。这两位超级电脑迷不满足于学校有限的上机时间,便跑到西雅图计算机中心公司要求当义务程序检测员,公司居然同意了。
比尔·盖茨等人为了加长他们的用机时间,甚至破译了计算机的安全密码,并修改了机内的重要文件。在湖滨中学和西雅图计算机中心公司,比尔·盖茨学到了许多电脑知识,为他自己独立开发软件奠定了基础。1972年还在读中学的两个小孩(比尔·盖茨和保罗·艾伦)办起了自己的公司,公司名为交通数据公司。公司算不上成功,但是毕竟谈成了几笔生意。
1973年比尔·盖茨按照父亲的意愿进入美国最著名的哈佛大学学习法律,但是他觉得自己学法律并不合适。恰在这时,微型仪器遥测系统公司登出广告,寻求阿尔塔电脑的软件系统。比尔·盖茨立即打电话给该公司的老板,声称他们是西雅图交通数据公司,已经成功地为阿尔塔计算机开发出了BASIC语言解释程序。老板很感兴趣,要他们3个星期之内带上软件到公司来。其实,比尔·盖茨说的BASIC语言解释程度还只是一个设想。
比尔·盖茨和他的伙伴日夜奋战,就在艾伦乘飞机到微型仪器遥测公司总部的前一个晚上,工作还没有完成,凌晨1点,比尔·盖茨让艾伦去睡,自己一直工作到第二天早上,终于把录有BASIC的字带交给艾伦。当飞机降落前半个小时,艾伦突然发现还缺一个装载程序,赶紧抓过几页废纸编写程序,在飞机着陆时最后一行程序写完了。软件获得了成功,也奠定了比尔·盖茨和他的微软公司的基石。