optimization - COBOL 段落编号背后的逻辑是什么?

标签 optimization cobol mainframe zos

我已经多次看到以下段落命名结构:

nnnn-PARAGRAPH-NAME.

哪里nnnn代表一个 4 位数字。

这是一个完整的例子:
0000-MAINLINE. 
    PERFORM 1000-INITIALIZE-THE-PROGRAM. 
    PERFORM 2000-PROCESS-1-BILLING-RECORD 
        UNTIL 88-100-ALL-RECORDS-PROCESSED. 
    PERFORM 3000-TERMINATE-THE-PROGRAM. 
    GOBACK. 
1000-INITIALIZE-THE-PROGRAM. 
    PERFORM 1100-VALIDATE-CONTROL-CARD. 
    PERFORM 1200-OPEN-THE-FILES. 
    PERFORM 8000-GET-NEXT-BILLING-RECORD. 
1100-VALIDATE-CONTROL-CARD. 
    PERFORM 1110-READ-CONTROL-CARD. 
    PERFORM 1120-EDIT-CONTROL-CARD. 
1110-READ-CONTROL-CARD. 
    PERFORM 9000-ABEND-THE-PROGRAM.  *> IF A READ ERROR OCCURRED 
1120-EDIT-CONTROL-CARD. 
    PERFORM 9000-ABEND-THE-PROGRAM   *> IF AN EDIT ERROR OCCURRED 
1200-OPEN-THE-FILES. 
    PERFORM 9000-ABEND-THE-PROGRAM   *> IF AN OPEN ERROR OCCURRED 
2000-PROCESS-1-BILLING-RECORD. 
    PERFORM 2100-CALCULATE-BILLABLE-AMT. 
    PERFORM 2200-PRINT-BILLING-REPORT. 
    PERFORM 8000-GET-NEXT-BILLING-RECORD. 
2200-PRINT-BILLING-REPORT. 
    PERFORM 2210-PRINT-REPORT-HEADER.  *> WHEN IT'S NEEDED 
3000-TERMINATE-THE-PROGRAM. 
    PERFORM 3100-CLOSE-THE-FILES. 
    PERFORM 3200-DISPLAY-FINAL-MESSAGES. 
8000-GET-NEXT-BILLING-RECORD. 
    PERFORM 9000-ABEND-THE-PROGRAM.    *> IF A READ ERROR OCCURRED 
9000-ABEND-THE-PROGRAM. 

因此,我的问题如下:
  • 这在今天被弃用了吗?
  • 为什么(或曾经)这是一个好习惯?
  • 段落编号遵循哪些标准?
  • 最佳答案

    解释

    数字告诉您程序结构。在这个程序中:

  • 1* 都是初始化程序,1000-...调用1100-...和1200-。而 1100-... 调用 1110-... 和 1120-... 等
  • 2* 是主要的处理逻辑程序
  • 3* 是定型处理逻辑程序
  • 8000 从任何地方调用
  • 9000 错误程序

  • 所以程序调用结构是
                                         0000-
               +---------------------------+------------------------------+                             
             1000-                       2000-                          3000-
      +--------+------+             +------+------+               +-------+-------+ 
    1100-           1200-         2100-         2200-           3100-           3200-
    
     etc...
    

    具体问题
  • 这在今天被弃用了吗? 绝对不是 , 它应该用于其他过程语言。了解编号系统
  • 为什么(或曾经)这是一个好习惯?这是一个很好的做法,因为它告诉你
  • 程序如何相互关联 - 这非常方便。
  • 获取过程的调用结构
  • 增进了解
  • 节省了很多时间。例如,如果您 查找 2000- 您将转到主要处理逻辑
  • 段落编号遵循哪些标准?

  • 其他要点

    一旦你习惯了编号系统,它会让你更容易理解程序。不同的网站有不同的做法,有些网站也可能使用字母/代替数字,例如
          Perform A000-Initialise
          Perform B000-Main
          Perform C000-Finalise
    
     A000-Initialise.
         Perform A100-...
         etc
    

    在任何一个站点,他们将在所有(或大多数程序)中使用相同的编号标准。

    网站可能会为特定目的保留第一个数字/字母。如果使用 A000-、B000- 格式,这种情况更为常见。您可能会使用 回复... 用于文件读取 W... 用于文件写入 S... 用于 SQL 调用等。

    编号系统造就生命 更容易 经验丰富 程序员。用其他语言工作过,应该使用 Cobol 以外的其他程序语言。

    关于optimization - COBOL 段落编号背后的逻辑是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50405821/

    相关文章:

    c# - Resharper:IEnumerable 的可能多重枚举

    optimization - J:关于将过滤器序列最佳应用到列表

    cobol - 在 COBOL 中填充数组时出现问题

    linux - 如何说服 z/OS scp 传输二进制文件?

    algorithm - 除了使用循环展开之外,还有其他优化向量矩阵乘法的方法吗?

    c++ - MPI_ALLgather 将局部最大值发送到所有进程,进程终止错误

    java - 分离字符生成从 IBM i 系列 (AS400) 转换为 Java 文本文件

    cobol - 您可以在同一行 COBOL 上接受两个输入吗?

    algorithm - 如何识别事件发生率(移动平均)是否超过阈值

    db2 - 用于测试的 LUW DB2 在 IBM 生产大型机上使用 DB2