📜  COBOL 中的编码表

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

COBOL 中的编码表

每种语言都需要一个环境或平台来编写代码。例如,在Java,我们使用记事本编写代码然后编译它们运行。同样,COBOL 需要一个编码表来编写代码。 COBOL 是一种面向业务的高级语言。它是为公司和政府的商业、财务和行政系统而开发的。 COBOL 使数据处理更容易,并且是一种可移植的编程语言。 COBOL 的完整形式是 COMmon, Business-Oriented Language。 COBOL 代码语句是不言自明的,即使是外行也能理解。然而,它是一种令人讨厌的语言,但仍然存在。这种语言得以幸存的原因是政府、银行和商业组织仍在使用它。

如前所述,COBOL 代码语句是不言自明的,但很难上手。之所以如此,是因为 COBOL 编码表是刚性的。 COBOL 编码表是 COBOL 编码结构。编码表分为 80 列。并且每一列或一组特定的列都是为特定类型的字段保留的。

下表显示了为哪些字段保留了哪些列:

ColumnField
1-3Page Number
4-6Line Number
7Comments/Continuation
8-11A-Margin / Area A
12-72B-Margin / Area B
73-80Identification

1-6 列:

  1. 第 1-6 列统称为序列号。序号的内容可以是任何计算机字符。
  2. 1-3 列保留给页码,随着添加到程序中的行数自动增加。
  3. 4-6 列保留给行号。行数随着程序中代码行数的增加而增加。
  4. 序列号的使用是可选的,可以省略。但是,当提供序列号时,它们必须按升序出现。

第 7 栏:

  1. 此栏保留用于评论。注释行实际上是一些注释,它们揭示了程序员的意图。
  2. 注释行可以出现在 COBOL 程序第一行之后的任何位置。
  3. 如果注释行以星号 (*) 开头,则注释不会被编译以生成目标代码。由于它们被编译器忽略,因此,任何内容都可以作为注释包含在内。
  4. 但是,如果您以字符斜杠 ( / ) 开始您的注释行,那么在导致页面弹出后(即,在跳到下一页的顶部之后)将打印该特定注释行。

8-11 列:

  1. 这些列中的条目可以从第 8、9、10 或 11 列开始。此列的条目称为保证金 A 条目。
  2. 这些列也称为区域 A。
  3. 所有 DIVISION 标头、SECTION 标头、PARAGRAPH 标头和 PARAGRAPH 名称都应从区域 A 开始。
  4. 01级和77级的编码应从A区开始。

12-72 列:

  1. 这些列中的条目可以从第 12 列到第 72 列的任何位置开始。这些列的条目称为保证金 B 条目。
  2. 这些列也称为区域 B。
  3. 除上述以外的所有其他陈述,即所有条目、句子和陈述都应从区域 A 开始。
  4. 条款应编码在区域 A 中。

73-80 列:

  1. 这些列用于写一些标识。这些是系统生成的数字。
  2. 编译器会忽略 73-80 列中编写的所有内容。
  3. 但是,如果提供了该程序的打印副本,则会列出这些列中的条目。

例子:

上图包含了一个用COBOL编码表编写的程序。所有条目都是根据上述列规则进行的。序列号不是强制性的,但您必须遵循列条目规则。

字符集:

每当我们学习任何新语言时,我们首先要学习字母表。 COBOL 语言的字母表通常称为字符集。 COBOL字符集中共有 50 个不同的字符。它们被列为:

CharacterMeaningUsage
0-910 numeralsNumeric characters
A-Z26 English alphabets- only uppercase lettersAlphabetic characters
minus sign or hyphen

Arithmetic operator

Continuation character



+plus signArithmetic operator
*asterisk

Arithmetic operator

Comment character

/slash

Arithmetic operator

Comment character

=equal sign

Arithmetic operator

Relational character

$currency signEditing character
,comma

Punctuation mark

Editing character

;semicolonPunctuation mark
.period or decimal point

Punctuation mark

Editing character

quotation markPunctuation mark
(left parenthesisPunctuation mark
)right parenthesisPunctuation mark
<less than symbolRelational character
>greater than symbolRelational character

甲COBOL是一组能形成COBOL字,一个PICTURE字符串或注释相邻字符的。

  • COBOL 字: COBOL 字可以使用字母字符、数字字符和连字符组成。形成COBOL词时必须遵循以下规则:
  1. COBOL 单词不能以连字符开头或结尾。
  2. 一个 COBOL 字最多可以有 30 个字符。
  3. COBOL 单词中的字符之一必须是字母。根据某些 COBOL 编译器,还有一个附加限制,即 COBOL 单词的第一个字符必须是字母。
  4. 形成 COBOL 词时,不允许使用除连字符以外的特殊字符。

COBOL 中有两种类型的词,它们是用户定义的和保留的词:

1. COBOL 用户自定义字:数据名称和标识符为用户自定义的Cobol 字。数据名称提供对存储实际值的内存中的存储空间的引用。数据名称只是标识符的一种形式。数据名不能是保留字。

User-defined words(valid)Invalid user-defined words
WS-VARCOMPUTE(Reserved word)
NET-SALARYADD(Reserved word)
MARK1MULTIPLY(Reserved word)

例子:

在上面的程序中,01层定义的XX是一个用户自定义词,代表一个名为XX的组项目,包含表B。

NOTE: Arrays in COBOL are known as tables.

2. 保留字: COBOL 中的保留字有特定的用途。

例如:

Reserved wordPurpose
ADDUsed to perform addition
COMPUTEUsed when mathematical formulas are to be dealt
ACCEPTUsed to store input in data names

例子:



上述程序解释了示例中给出的保留字的功能。除了上面陈述和解释的三个之外,还有许多保留字。

NOTE: Whenever you need to write equation in cobol then you must include whitespace between the operator and operand.
  • 字面量: COBOL 中的字面量通常称为常量,因为它的值在整个程序执行过程中保持不变。共有三种类型的字面量,即:数字、非数字和比喻常量。

1. 数字:数字字面量是在数字的帮助下形成的。它可以有 + 号或 – 号,也可以有小数点。对于为正的数字字面量,无需指定符号,但是,如果您希望字面量为负,则应在最左端指定 - 符号。字面量的小数点有助于识别数字是浮点数还是整数。数字字面量允许的最大位数取决于编译器。

Valid numeric literalInvalid numeric literal
.456“789” 
85.6– 56

2. 非数字:这种类型的字面量用作输出消息或标题。非数字字面量包含在两个引号之间。两个引号之间可以包含的字符数取决于编译器。

Valid nonnumeric literalInvalid non-numeric literal
“DATA DIVISION”8
“SPEED/HOUR”“SEVEN
“56.6”45.3″

3. 图形常量:这些是指特定常量值的保留字。

例如: 考虑语句:MOVE ZERO TO A。这里的值 0 将被移动到数据名称 A。单词 ZERO 是一个值为 0 的比喻常数。比喻常数的一些其他例子是:

Figurative ConstantMeaning

ZEROS

ZEROES

has value 0

SPACE

SPACES

one or more blank

HIGH-VALUE

HIGH-VALUES

The highest value in the collating sequence

LOW-VALUE

LOW-VALUES

The lowest value in the collating sequence

QUOTE

QUOTES

one or more of “
ALL literalone or more of the string characters comprising the literal