精通COBOL--11.7.1 嵌套子程序的结构

来源:互联网 发布:java项目中对并发 编辑:程序博客网 时间:2024/05/22 03:41

  所谓嵌套,实际上也可以理解为一种包含关系。在COBOL中的嵌套子程序,存在两种包含关系。其中一种为直接包含,另一种为间接包含。直接包含对应于一层嵌套,间接包含对应于多层嵌套。下面,首先看一段嵌套子程序的代码示例。

IDENTIFICATION  DIVISION.

PROGRAM-ID  PGM-A.

PROCEDURE DIVISION.

    DISPLAY  ‘THIS IS PROGRAM A’.

    CALL  ‘PGM-B’.

    CALL  ‘PGM-C’.

  STOP RUN.

IDENTIFICATION  DIVISION.

PROGRAM-ID  PGM-B.

PROCEDURE DIVISION.

    DISPLAY  ‘THIS IS PROGRAM B’.

   EXIT PROGRAM.

END PROGRAM B.

IDENTIFICATION  DIVISION.

PROGRAM-ID  PGM-C.

PROCEDURE DIVISION.

   DISPLAY  ‘THIS IS PROGRAM C’.

    CALL  ‘PGM-C1’.

    CALL  ‘PGM-C2’.

  EXIT  PROGRAM.

IDENTIFICATION  DIVISION.

PROGRAM-ID  PGM-C1.

PROCEDURE DIVISION.

    DISPLAY  ‘THIS IS PROGRAM C1’.

  EXIT PROGRAM.

END PROGRAM C1.

IDENTIFICATION  DIVISION.

PROGRAM-ID  PGM-C2.

PROCEDURE DIVISION.

    DISPLAY  ‘THIS IS PROGRAM C2’.

   EXIT PROGRAM.

END PROGRAM C2.

END PROGRAM C.

END PROGRAM A.

通过以上代码注意到,在嵌套子程序中通常是根据END PROGRAM语句表示程序的结束。实际上,对于以上嵌套子程序,分别有以下直接和间接包含关系。

q      PGM-A为其中的主程序。该程序直接包含的程序有PGM-BPGM-C。间接包含的程序有PGM-C1PGM-C2

q      PGM-C直接包含的程序为PGM-C1PGM-C2。该程序没有间接包含的程序。

q      PGM-B以及PGM-C1PGM-C2都既没有直接包含的程序,也没有间接包含的程序。

通过以上各程序间的包含(嵌套)关系,可以得出该嵌套子程序的内部结构。实际上,以上嵌套子程序中连同主程序在内共有5个程序。并且,里面嵌套层数最多为2层。

总之,了解嵌套子程序的结构,关键是要找准其中每一个程序的起始和结束标志。其中程序的起始标志是通过标志部字段IDENTIFICATION DIVISION表示的。而程序的结束标志在此处则是通过END PROGRAM语句表示。