概述
COBOL(Common Business Oriented Language)语言是一种适合于商业及数据处理的程序设计语言。这种语言可使商业数据处理过程精确表达。在企业管理中,数值计算并不复杂,但数据处理信息量却很大。为专门解决企业管理问题,1959年,由美国的一些计算机用户组织设计了专用于商务处理的计算机语言COBOL,并于1961年由美国数据系统语言协会公布。经不断修改、丰富完善和标准化,已发展为多种版本。
COBOL语言提供了三种强有力的文件处理功能(顺序文件、随机文件、索引文件)。大量数据一般作为文件的记录存储在磁盘上,而不是直接存放在内存。COBOL语言仅提供了加、减、乘、除及乘方这5种运算,没有提供其他复杂的内部函数,因而COBOL语言不适于进行科学计算。为便于输入输出,COBOL语言除提供方便的接收(ACCEPT),显示(DISPLAY)语句外,还提供了三种字符串处理语句:合字符串(STRING),分字符串(UNSTRING)和字符串检测(INSPET)语句。与一般高级语言不同,COBOL语言明确地规定任何源程序都必须包含标识部、环境部、数据部和过程部。
COBOL语言使用了300多个英语保留字,大量采用普通英语词汇和句型,COBOL程序通俗易懂,素有“英语语言”之称。COBOL语言语法规则严格。用COBOL语言编写的任一源程序,都由4个部组成:标识部(Identification)描述程序、环境部(Environment)描述运行程序的计算机系统、数据部(Data)描述程序中所有数据的格式、程序部(Procedure)是程序的主体。
COBOL程序结构的“部”内包含“节”,“节”内包含“段”,段内包含语句,语句由字或字符串组成,整个源程序像一棵由根到干,由干到枝,由枝到叶的树,习惯上称之为树形结构。
20世纪80年代后随着数据库的广泛应用,该语言使用面减少。目前COBOL语言主要应用于情报检索、商业数据处理等管理领域,银行系统还较多采用COBOL语言开发。1
COBOL标准的发展1960年,美国计算机与商业设备制造商协会(CBEMA)成立了一个委员会,叫做美国计算机与信息处理国家标准委员会,简称X3。X3委员会的分会X3.4编程语言分会建立了X3.4.4工作组“处理器规范与COBOL标准小组”。
X3.4.4(后更名为X3J4)小组负责建立COBOL标准。这个小组的第一次会议于1963年召开,由计算机制造商和用户的代表参加。他们确定了小组的目标是根据COBOL的CODASYL标准(1959年该委员会产生的最初COBOL标准)定义COBOL国家标准。
1968年,美国标准协会(USASI)批准了COBoL分会开发的标准,发表号为X3.23—1968。这个文档定义了COBOL包括内核(Nucleus)和下列八个功能模块:
·Table Handling(表格处理)
·Sequential Access(顺序访问)
·Random Access(随机访问)
·Random Processing(随机处理)
·Sort(排序)
·Report Writer(报表写入)
·Segmentation(分段)
·Library(库)
每个模块分成最多三层,高层提供更多功能,低层提供高层的子集。COBOL的基本版本应包括内核、表格处理和顺序访问模块的低层功能。完全版本的COBOL应包括所有模块的高层功能。美国标准协会(USASI)于1966年由ASI更名为USASI,1969年更名为美国国家标准协会(ANSI)。这个ANSI标准即著名的COBOLL一68。
1974年对标准进行了修订,8个功能处理模块扩充为11个:
·Table Handling(表格处理)
·Sequential I/O(顺序I/O)
·Relative I/O(相对I/O)
·Indexed I/O(索引I/O)
·Sort—Merge(排序/合并)
·Report Writer(报表写入)
·Segmentation(分段)
·Library(库)
·Debug(调试)
·Inter.Program Communication(程序间通信)
·Communication(通信)
每个模块包括两层或三层。在9个模块中,最低层为空集。每个低层都是高层的子集。对于COBOL-68,基本版本应包括内核、表格处理和顺序I/O模块的最低层。2
COBOL程序的组成对于COBOL程序的结构,大体上都得由四个部(DIVISION)组成:
(一)标识部(IDENTIFIcATl0N DIVISION):标识部用于对程序命名。还可以写些备注性的内容,如作者的姓名、编写与编译的日期等。
(二)设备部(ENVIRONMENT DIVISION):设备部是程序中描述计算机硬件的部分。并指出使用的主机和外围设备。
(三)数据部(DATA DIVISION):数据部用来描述程序的数据结构。这些数据包括输入、输出及中间结果的数据。
(四)过程部(PROCEDURE DIV璐IoN):过程部是COBOL程序中最主要的一个部,它的任务是对数据进行处理与计算。3
语法格式在大型机环境中,COBOL程序的每行代码通常分为80列。对于列与列之间不同的范围,其意义各不相同。列于列之问不同的范围及其意义分别如下。
第1~6列:序号区。
第7列:指示符区。
第8~11列:A区。
第12~72列:B区。
第73~80列:说明区。
其中序号区中的内容通常不作要求。指示符区通常为空或者包含字符“*”。当包含“*”时,表示该行为注释行,用于书写对程序的注释信息。同时,也可以在“*”后不添加任何注释信息,以起到对程序代码段分隔的作用,利于阅读。A区中的内容主要包括COBOL中的部、节、语句段的标识符,以及01层数据层号等。B区中则主要包含过程部中的各条语句。说明区用于对程序进行注释。
COBOL程序中用到的各类数据名称主要由字母、数字以及中划线组成。其中字母通常为大写字母。中划线不可作为数据名称的开头或结尾。数据名称通常最多不应超过30个字符,并且不可定义为程序关键字。
COBOL中的关键字主要为各种语句名、特殊数据名、象征常量名等。例如,以下为几个常见的COBOL中的关键字:PIC、FILLER、OPEN、MOVE、PERFORM、SPACES。4