Cobol的光明面是什么?

Rob*_*uld 8 language-features cobol

我喜欢花时间研究语言的酷炫功能,即使我很快就没有机会使用它们,但是只听到Cobol的坏事,但我敢肯定它必须有一些不错的功能才能使用它.变得和它一样重要.那么从Cobol可以学到什么好的功能呢?

Kon*_*kus 12

能够以不那么简洁的方式编写公式.例如:

ADD YEARS TO AGE.
MULTIPLY PRICE BY QUANTITY GIVING COST.
SUBTRACT DISCOUNT FROM COST GIVING FINAL-COST.
Run Code Online (Sandbox Code Playgroud)

这是优势还是劣势?取决于你如何看待它......

  • 这个答案应该很有趣,还是什么?这似乎是对 COBOL 的严厉抨击,但也许我遗漏了一些东西。 (2认同)

小智 9

真正的定点变量和数学.因此,对于15美元和75美分,您的内部表示是二进制数字1,5,7和5.这是与标准浮点近似的精确表示.此外,该定点变量的所有加法和减法也是定点的.

Report Writer扩展非常擅长生成报告和处理页眉,页脚,分页符,分节符以及与生成报告有关的任何内容.

Sort/Merge扩展也非常非常好.使用各种允许的构造,您可以简单地排序/合并,或者您可以在排序后排序或排序输出之前处理排序输入记录.例如,直接输入输入记录进行排序,然后在排序记录上使用Report Writer,而无需在代码中管理中间排序文件.非常好.

它做得很好,它做得很好.只是在大多数情况下,它做得很好并不完全是你所需要的.


Joh*_*ers 8

长寿.我在1975年首次学习的语言可用于今天的Web服务.

此外,COBOL有一个我听到人们每天都要求的功能.给定两个具有相同名称字段的记录,您可以:

MOVE CORRESPONDING SOURCE-RECORD TO DESTINATION-RECORD.
Run Code Online (Sandbox Code Playgroud)

它会将具有相同名称的字段从一个字段移动到另一个字段,并根据需要进行转换.缺少这样的功能是人们采用数据传输对象从Web服务返回的方式之一 - 您必须编写代码来手动完成上述操作,或者使用代码生成.

我想可能也有ADD CORRESPONDING,但我不确定.一段时间后,记忆开始消失......


Tho*_*day 5

输出格式是变量声明的一部分.它非常注重业务.

在COBOL中,变量声明由DATA DIVISION中的一行包含以下项:

* A level number.
* A data-name or identifier.
* A Picture clause.
Run Code Online (Sandbox Code Playgroud)

可以通过名为VALUE子句的PICTURE子句的扩展将起始值赋给变量.

一些例子:

01 GrossPay       PIC 9(5)V99 VALUE ZEROS.

01 NetPay         PIC 9(5)V99 VALUE ZEROS.

01 CustomerName   PIC X(20) VALUE SPACES.

01 CustDiscount   PIC V99 VALUE .25.
Run Code Online (Sandbox Code Playgroud)


Evi*_*ach 5

支持精确数学的压缩小数;

内置索引文件/排序;

成熟的编译器;

它有点冗长,但它完成了工作.


Joe*_*Fan 5

哦,我怎么能忘记......

代替:

if ((a == 3) || (a == 4) || (a == 10))
Run Code Online (Sandbox Code Playgroud)

写:

IF A IS 3 OR 4 OR 10
Run Code Online (Sandbox Code Playgroud)

代替:

if ((a == 3) || (a < b))
Run Code Online (Sandbox Code Playgroud)

写:

IF A IS 3 OR LESS THAN B
Run Code Online (Sandbox Code Playgroud)

代替:

if ((a >= 3)  && (a <= 10))
Run Code Online (Sandbox Code Playgroud)

写:

IF A IS BETWEEN 3 AND 10
Run Code Online (Sandbox Code Playgroud)