COBOL学习笔记_20121231
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
cobol语言.修订版.(上册+下册).pdf
2012-12-14(1~22 )
COBOL语言特点:
(1) 适合数据处理(算术计算量小而逻辑处理多;输入输出数据量大;数据间有一定逻辑关系,即层次关系;大量分类排序;对报表要求高、多样化等)
(2) 接近自然语言英语,易于理解
(3) 通用性强,易于移植
(4) 结构严谨,层次分明,每个程序分为4部分(division:标示部Identification division、环境部envroNment division、数据部data division、过程部procedure division)、每部分分为若干节(section 有节头标示,类似部头)、节下面分为若干段(paragraph 有段头标示)。每一部分都有固定格式。
(5) 缺点是比较繁琐。不乱程序逻辑如何,都必须按照四大部分生成,对每部分都必须定义和说明,即使该部分实际上没有内容,也要写出头部,导致源程序冗长。
=================
一个简单的COBOL程序:
Code:
IDENTIFICATION DIVISION.
PROGRAM-ID. EXAM1.
ENVIRONMENT DIVISION.
DATA DIVISION.
PROCEDURE DIVISION.
S. DISPLAY 'THIS IS A COBOL PROGRAM.'
STOP RUN.
=================
IDENTIFICATION DIVISION: 用来指定源程序名称,也可写入其他信息(如作者、日期、保密等)。
ENVIRONMENT DIVISION: 程序中用到的数据文件名和计算机的设备的对应关系,即把某一数据文件和一外部设备关联起来。此外,还可以指定目标程序中使用的专门控制方法和程序所用内存区的大小。
DATA DIVISION: 程序用到的所有数据的类型和占用内存的情况。
PROCEDURE DIVISION: 用来给出程序要执行的命令,是计算机产生相应的操作。
部下面可以有节,节下面有段;或者部下面直接是段。
=================
以上四个部分,只有过程部是执行部分,是核心部分。
过程部中,每段由若干句(Sentence)组成,每句以句号加一个以上的空格来结束的。
一个句子只能由一个语句组成,一个语句加一个句号后跟一个或多个空格形成一个句子。
一个句子可以包含多个子句(Clause),每个子句也有一个动词,指定某一方面的功能。
除了过程部外,环境部和数据部也可以包含子句,如SELECT子句、文件描述子句等。
=================
COBOL每行80列,每行分为几个区:
(1) 1~6列为“标号区”,一般前3列表示页号,后3列表示本页行号。标号应当按照从小到大顺序填写,但可以不连续。可以填标号,也可以不填写,对程序没有影响。
(2) 第7列:“续行标志区”,写上续行符"-",表示本行是续上一行后面的。一般只有拆分字符需要两行紧连或者一个长的字符串需要拆成两行时才使用,否则可以空着。不推荐使用续行符,容易导致错误。
(3) 第8~11列,称为"A区",程序的某些部分,如部头、节头、段头、层号01、层号77以及文件标示符FD等应从A区开始书写。可以从第8列开始,也可以不从,但必须在8~11列的任何一列开始。
(4) 第12~72列,称为"B区",是程序的正文部分,过程部的句子必须从B区开始写,不能写入A区中。
(5) 第73~80列,为“注释区”,一般是简单说明,程序编译和执行时都不会理会该区内容。80列的划分区,只是对程序有以上限制,对于数据而言没有以上分区限制,即输入数据可以从第1列用到第80列。
所有字母应大写;相邻两个字之间应该留一个或以上空格;运算符和等号两边必须各留一个空格;过程部中左括号的左侧和右括号的右侧都要留一个空格,内侧不必留空格;逗号、句号、分号的左边不能留空格,右边必须留空格;一个空格和多个空格作用相同,但引号中的除外;允许一行
写几个语句,也可以一个语句写在多行上。
=================
COBOL字符集:COBOL程序中允许出现的字符(引号内的除外)。
数字:0~9
大写字母:A~Z
专用字符15个:
加号+
减号或连接号-
乘号或星号*
除号/
等号=
逗号,
句号或小数点 .
分号;
引号'或"
括号()
小于号 <
大于号 >
空格
货币符号$
#,!,?,%等字符属于系统字符集但不属于COBOL字符集,不能在程序中出现(引号内除外)。
=================
COBOL字分为两类:保留字和用户字(非保留)。
保留字指在COBOL中已规定作专门用途的字,代表特定的含义,不能另作他用。
=================
数据名就是由程序设计者定义的一片内存区域,即用一个符号代表一个地址。
长度只能是1~30个字符之间;只能由字母、数字和连接符"-"组成,至少含一个字母,连接符不能出现在名称的两端,不能出现空格;不能使用COBOL保留字,一般使用连接符是避免使用保留字的好方法,或者使用X或数字开头的名称;最好使用望文生义的单词命名。
=================
常量包括数值常量(Numerical Literal)、非数值常量(Nonnumerical Literal)和表意常量(Figurative Constant)三类。
数值常量不能超过18位数字;至少要有一个数字,不能含有超过一个符号;数字之间不能有空格。
非数值常量指用引号引起来的字符串;非数值含量不能参与运算;如果想把引号也放入常量,需要使用QUOTE保留字实现,如DISPLAY QUOTE 'ABCD' QUOTE,表示'ABCD'六个字符,但QUOTE本身不能替代引号;非数值常量不能超过120个字符。
表意常量就是指用保留字表示的一些特殊常量,如用ZERO表示0,SPACE表示空格等。
=================
COBOL的数据具有层次的特征,类似于一颗倒立的树或者是金字塔结构,一般将这样的一条数据称之为一个记录(record)。为了反映数据在一个层次结构中的层次,引入了层号的概念,使用2位数来表示。层号小表示较高的层次。
记录是具有一定层次关系的一组数据项的最大集合。是内存中具有独立逻辑含义的最大可存取项,层号为01。
记录下分为几项,不能继续分的称为初等项或基本项(Element item)。初等项是数据的基本单位;如果还能继续分,称为组合项(Group Item),组合项下可以是组合项或者初等项。
多个记录可以组成一个文件。但文件一般存储在外部,不在内存中,内存中最大存取项是记录。