1. 代码结构COBOL的源程序的代码主体部分必须从第8列开始(A区域),通常包括分区Division,分段Section和第一级的数据等。其第7列为指示字符保留,例如*表示注释行,-表示续行等。前6列为行号。第12列开始为B区域,一般是实体内容(代码实现),第二级以上的数据等。73列开始之后为卡号,现已不使用,但不能作为程序的一部分,编译器会忽略这部分的代码。
COBOL的源程序有一套比较刻板的代码区域划分系统,一般顺序如下:
IDENTIFICATION DIVSION
标识区,是程序的说明部分。包含PROGRAM-ID和AUTHOR,通常只起到注释作用。
ENVIRONMENT DIVISION
环境区,一般定义执行环境,例如需要用到的文件。
INPUT-OUTPUT SECTION
输入输出段,作为环境区的一部分定义文件句柄和外部文件的关联(如JCL中的DDNAME)
FILE-CONTROL
文件控制定义,这里具体列举文件句柄和关联。
DATA DIVISION
数据区,定义变量(COBOL只有文件域全局变量),文件句柄和数据的关联
FILE SECTION
文件数据关联区
WORKING-STORAGE SECTION
变量定义区
PROCEDURE DIVISION
程序区,定义主程序和若干被主程序使用的子程序。在最前的为主程序。
2. 数据
数据类型
纯数字(Numeric)
无符号 99V99, 9(3)V9(2),等;初值/赋值:
有符号,在前面加S,如S99V99;初值/赋值:+12.34,-32.4,加号或可省略。
字符(Alphanumeric)
X(20),XXX,等
纯字母(Alphabetic)
A(10),AAA,等
数字字符编辑型(Alphanumeric Edited)
B代表空格,/代表斜杠等;赋值 PIC XX/XX VALUE "1230",将得到值"12/30"。
数字编辑型(Numeric Edited)
赋值也需带双引号。
9代表任意数字,0也显示;Z代表任意有效数字,起始0被压制;
-接受任意有效数字,起始只显示负号;+接受任意有效数字,起始显示正号或负号;$接受任意有效数字,起始显示货币号;
负号-可以位于最后;CR/DB用于表示借/贷,当设