【问题标题】:Fujitsu COBOL 3.0Fujitsu COBOL 3.0
【发布时间】:2009-03-29 16:07:01
【问题描述】:

我是 Fujitsu COBOL 3.0 软件的新手。我尝试执行一个简单的程序。代码和错误如下。程序中的一切似乎都是正确的。谁能帮我吗?该软件需要遵循任何预标准吗?

示例 cobol 程序是:

IDENTIFICATION DIVISION.
PROGRAM-ID.  ShortestProgram.

PROCEDURE DIVISION.
DisplayPrompt.
    DISPLAY "I did it".
   STOP RUN. 
--------------------------------------------------------------------------------------
** DIAGNOSTIC MESSAGE ** (NOPRGMID)
C:\FSC\PCOBOL32\samples\SAMPLE6\SAMPLE7.COB 0: JMN1102I-S  IDENTIFICATION DIVISION HEADER IS MISSING. HEADER ASSUMED TO BE CODED.
C:\FSC\PCOBOL32\samples\SAMPLE6\SAMPLE7.COB 1: JMN1019I-W  INDICATOR AREA MUST CONTAIN '-','*','/','D',OR BLANK. A BLANK IS ASSUMED TO BE SPECIFIED.
C:\FSC\PCOBOL32\samples\SAMPLE6\SAMPLE7.COB 1: JMN1005I-W  CHARACTER STRING 'DENTIFICATION' MUST START IN AREA B. ASSUMED TO START IN AREA B.
C:\FSC\PCOBOL32\samples\SAMPLE6\SAMPLE7.COB 1: JMN1356I-W  INVALID WORD 'DENTIFICATION' IS SPECIFIED IN IDENTIFICATION DIVISION. IGNORED UNTIL NEXT PARAGRAPH OR DIVISION.
C:\FSC\PCOBOL32\samples\SAMPLE6\SAMPLE7.COB 2: JMN1019I-W  INDICATOR AREA MUST CONTAIN '-','*','/','D',OR BLANK. A BLANK IS ASSUMED TO BE SPECIFIED.
C:\FSC\PCOBOL32\samples\SAMPLE6\SAMPLE7.COB 2: JMN1005I-W  CHARACTER STRING 'ROGRAM-ID' MUST START IN AREA B. ASSUMED TO START IN AREA B.
C:\FSC\PCOBOL32\samples\SAMPLE6\SAMPLE7.COB 4: JMN1019I-W  INDICATOR AREA MUST CONTAIN '-','*','/','D',OR BLANK. A BLANK IS ASSUMED TO BE SPECIFIED.
C:\FSC\PCOBOL32\samples\SAMPLE6\SAMPLE7.COB 4: JMN1005I-W  CHARACTER STRING 'ROCEDURE' MUST START IN AREA B. ASSUMED TO START IN AREA B.
C:\FSC\PCOBOL32\samples\SAMPLE6\SAMPLE7.COB 6: JMN1004I-W  RESERVED WORD 'DISPLAY' MUST START IN AREA B. ASSUMED TO START IN AREA B.
C:\FSC\PCOBOL32\samples\SAMPLE6\SAMPLE7.COB 7: JMN1104I-S  PROGRAM-ID PARAGRAPH IS MISSING. PROGRAM-NAME GENERATED BY SYSTEM.
C:\FSC\PCOBOL32\samples\SAMPLE6\SAMPLE7.COB 7: JMN1004I-W  RESERVED WORD 'STOP' MUST START IN AREA B. ASSUMED TO START IN AREA B.
STATISTICS: HIGHEST SEVERITY CODE=S, PROGRAM UNIT=1

【问题讨论】:

    标签: cobol cobol85


    【解决方案1】:

    警告(指区域 B)似乎建议您的代码应该从每行的第二列开始。这就是为什么它发现例如“识别”而不是“识别”。

    我从未在 COBOL 中开发过,但我隐约记得第一列必须为空白,或者 * 表示注释:警告消息似乎表明 / - 和 D 也是有效值。

    更新:Google 建议 COBOL 编译器忽略前 6 列,并且第 7 列具有特殊意义(D 表示调试,* 表示注释,...)。尽管行为可能是特定于编译器的。所以我怀疑你的问题是你的代码从第 7 列开始,它应该是第 8 列。

    【讨论】:

      【解决方案2】:

      将所有内容移至 7 列,以便 IDENTIFICATION DIVISION 从第 8 列开始,所有后续行从第 8 列或更大的列开始。

      还有一个编译器开关(不记得我的头顶)允许您从 col 1 开始

      【讨论】:

        【解决方案3】:

        在这里进行 WAG(疯狂的猜测)。自从我大学的最后一年以来就没有 cobol'd。

        您的错误消息在底部显示,

        STATISTICS: HIGHEST SEVERITY CODE=S, PROGRAM UNIT=1
        

        好的,所以我认为您有一些警告(可能是 CODE=W),以及一个或多个实际上导致您的程序失败的错误。

        所以,扫描错误信息,我看到很多 W-s,还有一行带有 S:

        C:\FSC\PCOBOL32\samples\SAMPLE6\SAMPLE7.COB 7:JMN1104I-S 程序 ID 段落是 失踪。程序名称生成者 系统。

        看来您缺少您的 Program-ID 段落。查看您的程序,我确实看到了一个 n 标识部门,它有一个 program-id。

        我可以从中得出四点结论:
        1) 您的标识分割段格式错误
        2)正如尼尔所说,你不是在运行你的 sn-p,而是一个没有 ID 段落的样本。打开 sample7.cob 看看
        3)其他一些问题导致错误,但它被隐藏或误解为 ID 段落错误

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2010-09-14
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多