COBOL基础知识

本文详细介绍了COBOL编程的基础知识,包括编码格式、基本结构、标识部、环境部、数据部和过程部。内容涵盖从文件组织、存取方式到数据描述和过程控制等方面,是学习COBOL语言的入门指南。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

本文内容源于对IBM英文文档的理解与归纳,不保证其准确性。仅用于自学,转载请注明出处。

-----------------------------------------------------------------------------------------------

1.编码格式

  • 第1~6列为序号区,用于表示行号。行号不是必须的,也不必是顺序的,甚至可以是本机字符集中的任意字符,但正确的行号是很重要的。
  • 第7列为指示区,可以包含如下指示符:
  • "*"指示本行内容为注释。

    "-"指示本行代码为上一行的延续。

    "D"指示本行代码为调试代码,将在启用DEBUGGING模式时被编译,未启用时将被忽略。

    "/"指示编译器为源码列表开始新的一页,并且本行将被视为注释。

  • 第8~11列为A区。下列项必须从A区开始:
  • 部标题(DIVISION)

    节标题(SECTION)

    段名(段标题)

    层指示符FD和SD,层号01和77

    DECLARATIVES 和 END DECLARATIVES

    END PROGRAM

  • 第12~72列为B区。作为程序主体的条目(entries),句子(sentences),语句(statements),从句(clauses)和续行(/)等都必须从B区开始。

 

*句法说明:

节(SECTIONs)段(paragraphs)定义了程序,它们又细分为以下部分:

条目(entries):以句点(.)结尾的一系列从句。构造于标识部、环境部和数据部。

从句(clauses):连续的COBOL字符串的有序集合,用于指定条目的某个属性。构造于标识部、环境部和数据部。

句子(sentences):以句点(.)结尾的一个或多个语句的序列。构造于过程部。

语句(statements):指定程序要执行的某个动作。构造于过程部。

短语(phrases):构成从句和语句的更小单元。

 

2.基本结构

----|----1----|----2----|----3----|----4----|----5----|----6----|----7----|----8

//标识部

000001 IDENTIFICATION DIVISION. 
000002 PROGRAM-ID. PGMNAME. //指定本程序名。此段是必须的,并且必须排在标识部的最前头。
//环境部

000003 ENVIRONMENT DIVISION.

//配置节
000004 CONFIGURATION SECTION.

000005 SOURCE-COMPUTER.  IBM-PC WITH DEBUGGING MODE. //WITH从句指定启用调试代码。

000006 OBJECT-COMPUTER.  IBM-PC.

000007 SPECIAL-NAMES.
000008     CURRENCY-SIGN IS $. //指定货币符号为"$"。
000009     DECIMAL-POINT IS COMMA. //在PIC字符串或数字字面值中交换逗号","和小数点"."的功能。
//输入输出节

000010 INPUT-OUTPUT SECTION.
000011 FILE-CONTROL. //命名程序所用文件,并将其与外部文件相关联。
000012     SELECT INPUT-FILE ASSIGN TO "IN.DAT".

//数据部
000013 DATA DIVISION.

//文件节
000014 FILE SECTION. //定义数据文件的结构。
000015 FD  INPUT-FILE. //File Description.后面的文件名必须与前面SELECT语句中的一致。
000016 01  INPUT-RECORD-1  PIC X(100). //描述文件属性及与其关联的数据记录(可以是多个)。
000017 01  INPUT-RECORD-2 //同一存储区域的另一种定义。重定义INPUT-RECORD-1。

000018     03  ITEM-1  PIC X(20).

000019     03  ITEM-2  PIC X(80).

//工作存储节,描述程序处理过程中所涉及的不属于文件的数据记录。

//此存储区在运行单元开始时被分配,在运行单元结束时被销毁,在此过程中将保持其最后使用值。

000020 WORKING-STORAGE SECTION.

000021 01  WORK-FIELD  PIC X(20).

//连接节,用于被调用程序,描述从调用程序传递过来的数据。

000022 LINKAGE SECTION.

000023 01  LNK-FIELD  PIC X(10).

//过程部,被调用程序可以包含USING从句用于接收调用程序传递的参数数据,主调程序不需要。

000024 PROCEDURE DIVISION USING BY REFERENCE LNK-FIELD. //BY REFERENCE是默认值,可以省略。

000025 PGMNAME-START SECTION. //过程部处理逻辑的细分。

000026     PERFORM P-PROC-1-RTN.

000027     PERFORM P-PROC-2-RTN.

000028     EXIT PROGRAM. //返回调用程序(同GOBACK)。

000029 P-PROC-1-RTN SECTION.

000030 P-PROC-1.

000031     DISPLAY "first program:".

评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值