📜  COBOL – 基本语法

📅  最后修改于: 2022-05-13 01:54:38.033000             🧑  作者: Mango

COBOL – 基本语法

Cobol 是一种高级语言,它有自己的编译器。 COBOL 编译器将 COBOL 程序翻译成最终执行的目标程序。语法是指用编程语言编写任何语句的规则和规定。它与语言的语法和结构有关。

COBOL 的程序语法规则:

  • COBOL 语法非常简单。
  • 这些不区分大小写。
  • 一个 COBOL 包含 300 多个保留字。
  • 它缺少一个大型标准库,因为它只有 43 个语句、87 个函数和一个类。

COBOL字符集:

Cobol 基于 EBCDIC字符集,该字符集具有以下内容:

  • 英文字母(小写和大写)。
  • 数字 0-9。
  • 很少有特殊字符。例如空格、逗号、$、引号等。

COBOL 编码表:

下表描述了用于编写工作可执行 COBOL 代码的代码布局。

列数,记录长度为 80 字节:

S.NoColumn specificationShort Description Description
1.1-6Sequence Number it is used to identify each line of the source program, can contain any character in the system character set  
2.7Reserved for special character

it is an indicator area used for specifying.

  • * ⇒ Comment
  • – ⇒ Continuation
  • / ⇒ Form Feed
3.8-11Area ACobol divisions, sections, paragraphs being written in columns 8-11
4.12-72Area BSpace for Writing Cobol Statements
5.73-80System generated Number For programmer use 

让我们举个例子,了解一下 COBOL 语法和程序是如何工作的:

例子:

Cobol
IDENTIFICATION DIVISION.
PROGRAM-ID. YOUR-PROGRAM-NAME.
DATA DIVISION.
FILE SECTION.
WORKING-STORAGE SECTION.
01 NUM1 PIC 9(4) VALUE 1458. 
01 MESSAGE PIC X(11) VALUE 'HELLO WORLD'.   
PROCEDURE DIVISION.
MAIN-PROCEDURE.
          
**********This is a comment in Cobol***************
        
DISPLAY NUM1.
DISPLAY MESSAGE.
STOP RUN.
END PROGRAM YOUR-PROGRAM-NAME.


输出:

COBOL 代码说明:

  • 在 COBOL 程序 (YOUR-PROGRAM-NAME) 中,NUM1 是一个具有预定义默认值 1458 的数字字面量。
  • MESSAGE 是一个字母数字字面量,其预定义值为“HELLO WORLD”。
  • DISPLAY 关键字用于打印程序内部使用的两个变量(NUM1,MESSAGE)的默认值。
  • 每个 Cobol 程序中有 4 个部门。
  • 为了通过 JCL 编译 COBOL 程序,我们有一个常用的实用程序,称为 IGYWCL。参考 JCL 编译 COBOL。
  • 编译代码后,它会创建一个加载模块。加载模块是非人类可读文件,一种低级机器可读文件。
  • 要在大型机环境中执行程序,我们必须在上面的示例中给出程序 ID,YOUR-PROGRAM-NAME 是程序 ID 和加载库的路径。请参阅运行 JCL。

用于编译 COBOL 的 JCL:

//JOBNAME JOB ACCTNO,NAME,MSGCLASS=1
//S001                 EXEC IGYWCL
//COBOL.SYSIN  DD   DSN = LOCATION_OF_CODE,DISP= SHR
//COBOL.SYSLIB DD   DSN = COPYBOOK_LOCATION,DISP = SHR
//LKED.SYSMOD DD   DSN = LOADLIB_PATH(YOUR-PROGRAM-NAME),DISP=SHR

RUN JCL – 用于运行程序:

//JOBNAME JOB ACCTNO,NAME,MSGCLASS=1
//* JCL TO RUN COBOL PROGRAM*
//STEP01    EXEC PGM= YOUR-PROGRAM-NAME
//STPLIB     DD   DSN = LOADLIB_PATH,DISP=SHR
//SYSOUT   DD SYSOUT = *