天天看点

COBOL一、COBOL简介二、COBOL语法格式三、COBOL程序结构四、COBOL主程序和子程序五、COBOL数据类型六、COBOL基本动词

一、COBOL简介

COBOL(Common Business Oriented Language):面向过程的高级程序设计语言;

二、COBOL语法格式

COBOL程序的每行代码通常分为80列,有非标准的80列可以超过80列,写多少列都可以;

80列中列与列不同的范围及其意义如下:

第1-6列:序号区

第7列:指示符区

        1." "空,后面接正常的COBOL语句;

        2."*"注释符,注释当前行;

        3."/"注释符,注释当前列,程序编译时,强制程序挂起清单另起一页;

        4."-"字符串连接符(等同Java中'+');

        5."D"Debug行的标识符,Debug模式时,该行代码执行;

        6."B"标明BATCH程序;

        7."C"标明CICS程序;

第8-11列:A区,所有的COBOL各部、节、段、和一些特殊条目必须在A区开始;

第12-72列:B区,所有的COBOL语句必须在B区开始;

第73-80列:识别区,程序员根据自身需求进行使用;

三、COBOL程序结构

每个完整的COBOL程序代码都是由四个部分组成的。依次为标志部、环境部、数据部、过程部;部与部之间的先后顺序不可改变;

标志部(Identification Division):

        主要用来描述与程序本身相关的信息;

        PROGRAM-ID:指明程序名,是必须具备的字段,长度在1-30之间,其他字段都是可选的;

        AUTHOR:开发程序的程序员名;

        INSTALLATION:通常指设计该程序的公司或者部门;

        DATE-WRITTEN:指明程序编写或者修改的日期;

        DATE-COMPILED:指明程序的编译的日期;

        SECURITY:通常用于列出具有访问该程序权限的用户;

环境部(Environment Division):

环境部用来说明程序运行的软硬件环境,是COBOL程序中唯一与设备相关的部分,将程序用到的内部文件与外部的设备建立起来联系;紧跟标志部之后,没有可省略不写;

                配置节:由"CONFIGURATION SECTION"标识:指定程序同外部环境之间的一些配置信息(可省略不写),由两个段组成:

                        ①:源计算机(source computer):用于编译程序的系统;

                        ②:对象计算机(object computer):用于执行程序的系统;

                输入/输出节:由"Input-Output section"标识:指定程序中所用到的文件同外部环境之间的对应关系;

                        ①:文件控制(file control):用于指定文件的对应关系,是该节点中主要用到的字段;

                        ②:IO控制(I-O control):用于定义程序返回点,不同文件共享内存区,以及多文件卷中文件的位置;

数据部(Data Division):

        用于定义程序中使用的变量,紧接环境部之后,它由四个节组成:

                ①:文件节(File section):用于对程序中用到的文件里的数据进行定义。文件指逻辑文件,其文件名必须和环境部输入/输出节中由select语句指定的文件名一致。

                                在文件节中,主要以FD(File Desciptor:文件描述符)语句实现对文件的定义。在FD语句下,通过PIC语句依次定义文件中每条记录所含的数据项;

                                任何在程序中所使用的文件都需要在此处定义;

                                FD语句以句点表示结束;

                ②:工作存储节(Working-Storage section):用于声明程序中使用的临时变量和文件结构;

                ③:本地存储节(Local-Storage section):类似于工作存储节,唯一的区别是每次程序开始执行时都会分配和初始化变量;

                ④:连接节(Linkage section):用来描述与调用程序间发生数据传递的数据项。(即参数)

过程部(Procedure Division):

        编写程序要执行的语句,是程序的核心(至少有一条语句);逻辑处理部分都在过程部中,"STOP RUN"表明程序的结束!!!

四、COBOL主程序和子程序

        1.主程序:调用其他程序的程序;

                ①:主程序过程部的部头:Procedure Division;

                ②:过程部中应该包括一个程序出口语句:"STOP RUN"(逻辑上最后一句语句);

                ③:程序最后标志结束语句,END  PROGRAM 程序名(标记此行后再无程序语句);

        2.子程序:被其他程序所调用的程序;

                ①:子程序过程部的头部:Procedure Division Using 从主程序接收到的参数名1,参数名2;

                ②:过程部中应该包括一个程序出口语句:Exit Proream(逻辑上最后一句语句);

        子程序概述:Perfrom语句只能在同一程序中多次调用某一语句序列,如果被调用部分较复杂或需要被其他程序使用时,可以将其编写为一个单独的程序,即子程序,调用子程序的为主程序;

五、COBOL数据类型

        Data Name(数据名称):数据名称必须在数据部中定义,然后再能在过程部中使用,自定义变量名称,不可以使用保留词。数据名为存储实际数据的存储单元提供引用,它们可以是基本数据类型或组类型;

        Level Number(级数):级数用于指定记录中的数据级别,它们用于区分基本项和组项。基本项可以组合在一起创建组项;

COBOL一、COBOL简介二、COBOL语法格式三、COBOL程序结构四、COBOL主程序和子程序五、COBOL数据类型六、COBOL基本动词

                 Elementary items基本项目:不能进一步细分。级数、数据名称、图片子句、值子句(可选)用于描述基本项;

                Group items组项目:由一个或者多个基本项目组成。级数、数据名称和值子句(可选)用于描述组项。组级数始终为01;

        Picture Clause(图片子句):用于定义以下项目:

                数据类型:可以是数据、字母、字母数字,数字类型仅由0-9组成,字母类型由字母A到Z和空格组成。字母数字类型由数字,字母和特殊字符组成;

                符号:可以与数字数据一起使用,它可以是+或者-;

                小数点位置:可与数字数据一起使用。假设位置是小数点位置,而不包括在数据中;

                长度:定义数据项使用的字节数;

                在图片子句中使用的符号:

COBOL一、COBOL简介二、COBOL语法格式三、COBOL程序结构四、COBOL主程序和子程序五、COBOL数据类型六、COBOL基本动词
        Value Clause(值子句):值子句是一个可选子句,用于初始化数据项,该值可以是数字文字、字母数字文字、或象征常数。它可以与组项和基本项一起使用;

六、COBOL基本动词

        COBOL基本动词用于过程部中的数据处理,每个语句总是以COBOL动词开头;

        Input(输入)/Output(输出)动词:用于从用户获取数据,并显示COBOL程序的输出;

        Accept动词:用于从操作系统或直接从用户获取诸如日期,时间,天等数据,如果程序从用户接收数据,那么就需要通过JCL传递,如果从操作系统获取数据时,则可直接使用“ACCEPT WS-DATE FROM SYSTEM-DATE”;

        Display动词:用于显示COBOL程序的输出(个人理解:类似println);

        Initialize动词:被用来初始化组项或基本项,数据名为Rename的子句不被初始化,数字数据项由Zeroes代替。字母数字或字母数据项由Spaces代替,如果我们包含Replacing术语,则数据项可被初始化为给定替换值;

        Move动词:将数据从源数据复制到目标数据的,它可以用于基本和组数据项,使用Move Corresponding/Corr;

        对于从字符串移动数据,则使用Move(x:l),其中x是起始位置,l是长度。如果目标数据项PIC子句少于源数据项PIC子句,则数据将被截断,如果目标数据项PIC子句多余源数据项PIC子句,则将额外添加的Zeros或Sapces字节;

COBOL一、COBOL简介二、COBOL语法格式三、COBOL程序结构四、COBOL主程序和子程序五、COBOL数据类型六、COBOL基本动词

         Add(加法)动词:用于两个或多个数字相加,并将结果存储在目标运算对象中;

          语法如下:

COBOL一、COBOL简介二、COBOL语法格式三、COBOL程序结构四、COBOL主程序和子程序五、COBOL数据类型六、COBOL基本动词

 在语法句1中,A、B、C相加,结果存储在C中,A、B、D相加,结果存储在D中;

在语法句2中,A、B、C、D相加,结果存储在E中;

在语法句3中,WS-GROUP1和WS-GROUP2中的子组项相加,结果存储在WS-GROUP2中;

        Subtract(减法)动词:减去动词用于减法运算;

COBOL一、COBOL简介二、COBOL语法格式三、COBOL程序结构四、COBOL主程序和子程序五、COBOL数据类型六、COBOL基本动词

         在语法句1中,AB相加被C减去,结果存储在C中(C=C-(A+B)),AB相加被D减去,结果存储在D中(D=D-(A+B));

        在语法句2中,ABC相加被D减去,结果存储在E中;

        在语法句3中,WS-GROUP1和WS-GROUP2中的子组项相减,结果存储在WS-GROUP2中;

        Multiply(乘法)动词:乘法动词用于乘法运算;

COBOL一、COBOL简介二、COBOL语法格式三、COBOL程序结构四、COBOL主程序和子程序五、COBOL数据类型六、COBOL基本动词

         在语法句1中,A和B相乘,结果存储在B中(B=A*B),A和C相乘,结果存储在C中(C=A*C);

        在语法句2中,A和B相乘,结果存储在E中(E=A*B);

继续阅读