COBOL

COBOL入门到精通 书籍地址:https://github.com/openmainframeproject/COBOL-programming-course 还记得前阵子,新泽西州州长 Phil Murphy 在新闻发布会上说,紧急聘退休的COBOL程序员么?这条新闻一出,很多人纷纷表示,要重新拿起COBOL书本开始学习。 程序员的效率总是如此的高,这不,这两天就有一本COBOL书籍登上了Github热榜。 该教程目标读者是那些想要学习COBOL编程工作理解的初学者。它描述了如何使用包括带有Zowe和Z Open E. 阅读详情

一、COBOL简介

COBOL(Common Business Oriented Language):面向过程的高级程序设计语言;

二、COBOL语法格式

COBOL程序的每行代码通常分为80列,有非标准的80列可以超过80列,写多少列都可以;

80列中列与列不同的范围及其意义如下:

第1-6列:序号区

第7列:指示符区

        1." "空,后面接正常的COBOL语句;

        2."*"注释符,注释当前行;

        3."/"注释符,注释当前列,程序编译时,强制程序挂起清单另起一页;

        4."-"字符串连接符(等同Java中'+');

        5."D"Debug行的标识符,Debug模式时,该行代码执行;

        6."B"标明BATCH程序;

        7."C"标明CICS程序;

第8-11列:A区,所有的COBOL各部、节、段、和一些特殊条目必须在A区开始;

第12-72列:B区,所有的COBOL语句必须在B区开始;

第73-80列:识别区,程序员根据自身需求进行使用;

三、COBOL程序结构

每个完整的COBOL程序代码都是由四个部分组成的。依次为标志部、环境部、数据部、过程部;部与部之间的先后顺序不可改变;

标志部(Identification Division):

        主要用来描述与程序本身相关的信息;

        PROGRAM-ID:指明程序名,是必须具备的字段,长度在1-30之间,其他字段都是可选的;

        AUTHOR:开发程序的程序员名;

        INSTALLATION:通常指设计该程序的公司或者部门;

        DATE-WRITTEN:指明程序编写或者修改的日期;

        DATE-COMPILED:指明程序的编译的日期;

        SECURITY:通常用于列出具有访问该程序权限的用户;

环境部(Environment Division):

环境部用来说明程序运行的软硬件环境,是COBOL程序中唯一与设备相关的部分,将程序用到的内部文件与外部的设备建立起来联系;紧跟标志部之后,没有可省略不写;

                配置节:由"CONFIGURATION SECTION"标识:指定程序同外部环境之间的一些配置信息(可省略不写),由两个段组成:

                        ①:源计算机(source computer):用于编译程序的系统;

                        ②:对象计算机(object computer):用于执行程序的系统;

                输入/输出节:由"Input-Output section"标识:指定程序中所用到的文件同外部环境之间的对应关系;

                        ①:文件控制(file control):用于指定文件的对应关系,是该节点中主要用到的字段;

                        ②:IO控制(I-O control):用于定义程序返回点,不同文件共享内存区,以及多文件卷中文件的位置;

数据部(Data Division):

        用于定义程序中使用的变量,紧接环境部之后,它由四个节组成:

                ①:文件节(File section):用于对程序中用到的文件里的数据进行定义。文件指逻辑文件,其文件名必须和环境部输入/输出节中由select语句指定的文件名一致。

                                在文件节中,主要以FD(File Desciptor:文件描述符)语句实现对文件的定义。在FD语句下,通过PIC语句依次定义文件中每条记录所含的数据项;

                                任何在程序中所使用的文件都需要在此处定义;

                                FD语句以句点表示结束;

                ②:工作存储节(Working-Storage section):用于声明程序中使用的临时变量和文件结构;

                ③:本地存储节(Local-Storage section):类似于工作存储节,唯一的区别是每次程序开始执行时都会分配和初始化变量;

                ④:连接节(Linkage section):用来描述与调用程序间发生数据传递的数据项。(即参数)

过程部(Procedure Division):

        编写程序要执行的语句,是程序的核心(至少有一条语句);逻辑处理部分都在过程部中,"STOP RUN"表明程序的结束!!!

四、COBOL主程序和子程序

        1.主程序:调用其他程序的程序;

                ①:主程序过程部的部头:Procedure Division;

                ②:过程部中应该包括一个程序出口语句:"STOP RUN"(逻辑上最后一句语句);

                ③:程序最后标志结束语句,END  PROGRAM 程序名(标记此行后再无程序语句);

        2.子程序:被其他程序所调用的程序;

                ①:子程序过程部的头部:Procedure Division Using 从主程序接收到的参数名1,参数名2;

                ②:过程部中应该包括一个程序出口语句:Exit Proream(逻辑上最后一句语句);

        子程序概述:Perfrom语句只能在同一程序中多次调用某一语句序列,如果被调用部分较复杂或需要被其他程序使用时,可以将其编写为一个单独的程序,即子程序,调用子程序的为主程序;

五、COBOL数据类型

        Data Name(数据名称):数据名称必须在数据部中定义,然后再能在过程部中使用,自定义变量名称,不可以使用保留词。数据名为存储实际数据的存储单元提供引用,它们可以是基本数据类型或组类型;

        Level Number(级数):级数用于指定记录中的数据级别,它们用于区分基本项和组项。基本项可以组合在一起创建组项;

                 Elementary items基本项目:不能进一步细分。级数、数据名称、图片子句、值子句(可选)用于描述基本项;

                Group items组项目:由一个或者多个基本项目组成。级数、数据名称和值子句(可选)用于描述组项。组级数始终为01;

        Picture Clause(图片子句):用于定义以下项目:

                数据类型:可以是数据、字母、字母数字,数字类型仅由0-9组成,字母类型由字母A到Z和空格组成。字母数字类型由数字,字母和特殊字符组成;

                符号:可以与数字数据一起使用,它可以是+或者-;

                小数点位置:可与数字数据一起使用。假设位置是小数点位置,而不包括在数据中;

                长度:定义数据项使用的字节数;

                在图片子句中使用的符号:

        Value Clause(值子句):值子句是一个可选子句,用于初始化数据项,该值可以是数字文字、字母数字文字、或象征常数。它可以与组项和基本项一起使用;

六、COBOL基本动词

        COBOL基本动词用于过程部中的数据处理,每个语句总是以COBOL动词开头;

        Input(输入)/Output(输出)动词:用于从用户获取数据,并显示COBOL程序的输出;

        Accept动词:用于从操作系统或直接从用户获取诸如日期,时间,天等数据,如果程序从用户接收数据,那么就需要通过JCL传递,如果从操作系统获取数据时,则可直接使用“ACCEPT WS-DATE FROM SYSTEM-DATE”;

        Display动词:用于显示COBOL程序的输出(个人理解:类似println);

        Initialize动词用来初始化组项或基本项,数据名为Rename的子句不被初始化,数字数据项由Zeroes代替。字母数字或字母数据项由Spaces代替,如果我们包含Replacing术语,则数据项可被初始化为给定替换值;

        Move动词:将数据从源数据复制到目标数据的,它可以用于基本和组数据项,使用Move Corresponding/Corr;

        对于从字符串移动数据,则使用Move(x:l),其中x是起始位置,l是长度。如果目标数据项PIC子句少于源数据项PIC子句,则数据将被截断,如果目标数据项PIC子句多余源数据项PIC子句,则将额外添加的Zeros或Sapces字节;

        

         Add(加法)动词:用于两个或多个数字相加,并将结果存储在目标运算对象中;

          语法如下:

   

 在语法句1中,A、B、C相加,结果存储在C中,A、B、D相加,结果存储在D中;

在语法句2中,A、B、C、D相加,结果存储在E中;

在语法句3中,WS-GROUP1和WS-GROUP2中的子组项相加,结果存储在WS-GROUP2中;

        Subtract(减法)动词:减去动词用于减法运算;

         在语法句1中,AB相加被C减去,结果存储在C中(C=C-(A+B)),AB相加被D减去,结果存储在D中(D=D-(A+B));

        在语法句2中,ABC相加被D减去,结果存储在E中;

        在语法句3中,WS-GROUP1和WS-GROUP2中的子组项相减,结果存储在WS-GROUP2中;

        Multiply(乘法)动词:乘法动词用于乘法运算;

         在语法句1中,A和B相乘,结果存储在B中(B=A*B),A和C相乘,结果存储在C中(C=A*C);

        在语法句2中,A和B相乘,结果存储在E中(E=A*B);

COBOL是什么? COBOL(通用商业语言),全名英文 Common Business-Oriented Language 的缩写,是面向商业的高级程序设计语言,主要用于数据处理。它是最早的高阶程序设计语言之一,也是世界上最早实施标准化的计算机语言之一。COBOL 的设计始于 1950 年代,由 CODASYL 公司部分基于 Grace Hopper 设计的编程语言 FLOW-MATIC。它是美国国防部为开发一种可移植的编程语言进行的一项努力的一部分。 阅读详情

相关推荐

IBM COBOL 和 OpenCOBOL及迁移

为了实现一个可以通过对话框选择文件夹,并转换该文件夹下所有IBM COBOL源代码文件到GnuCOBOL的Java应用,我们可以使用JFileChooser来实现图形界面的文件夹选择,然后遍历选择的文件夹中的所有文件,对每个文件执行转换,并将结果保存到指定的输出目录下。把以上内容可以进一步改善为通过对话框指定转换目标文件和结果文件的目录,并遍历该目录下面的所有的IBM cobol源代码文件,并再结果文件的目录中生成同名的open cobol源代码文件。如果文件扩展名为.cbl,则进行转换。

weixin_41247583的博客 1985

COBOL语言基础总结

如果自行车的某个零件坏了,可以在五金商店买到相同规格的零件更换,恢复自行车的功能。程序中没有用到外部文件,文件节是可以省略的,但是工作存储节都是会存在的。作用:程序中涉及到的全部数据(输入,输出,中间)都要在此定义,对它们的属性进行说明。子程序概述:PERFORM语句只能在同一程序中多次调用某一语句序列,如果被调用部分较复杂或需要被其他程序使用时,可以将其编写为单独的一个程序,即子程序,调用子程序的为主程序。至于VSAM文件的创建,复制,删除等操作是通过JCL中的IDCAMS实用程序实现的。

linmeng022的博客 6312

cobol语言简介

机缘巧合之下做一个老项目翻新的项目,从cobol到java,我也学习了cobol的一些知识,记载一下我的cobol语言的学习。 cobol语言简介 cobol:common business oriented language(公用面向商业语言),这个语言目前使用面没有之前的广,也就需要了解对应cobol语言即可。不需要配置对应环境学习。 语言格式 如上图所示,在cobol程序中,1-6 列表示代码的序号区,代表当前序列,类似与行号。7列表示指示符区,如果是*,则表示此行为注释行。 程序结构 co..

大道至简 1万+

cobol1

         COBOL简易教程主要内容<br />1.COBOL语言的基本概念及程序的结构<br />·       一个例子<br />l      COBOL程序的结构<br />l      COBOL源程序的书写格式<br />2.COBOL数据表示<br />·       常量<br />·       层次的概念<br />·       PICTURE语句<br />·       数据在内存中的各种形式<br />3.算术运算<br />l      变量赋值 (MOVE, MOVE

ylywcky的专栏 2069

什么是COBOLCOBOL编程说明

有些技术永不消亡,它们只是逐渐消失在木制品中。 向普通软件开发人员询问有关COBOL(面向通用商业语言)的信息,他们会看着您,就像您提到复写纸,含铅汽油或78 RPM记录一样。 与Go或Python甚至Pascal或C!之类的现代语言相比,COBOL似乎冗长,笨拙,过时。 但是COBOL忍受了。 COBOL绝不是我们与之愉快地过时的过时技术,而是已成为一个机构。 大规模的COBOL代码...

cxu0262的博客 1万+

COBOL学习

COBOL概述           什么是COBOL语言:            COBOL是Common Business Oriented Language的缩写,是面向商业通用编程语言。它是专门为商业数据处理而设计的计算机高级程序语言。广泛用于数据管理领域。应用于多个行业如:银行,证券,金融,制造,等等。            COBOL程序的基本结构:

黎明前的黑暗 1万+

Cobol学习总结

COBOL程序的结构 部 IDENTIFICATION DIVISION 标识部 ENVIRONMENT DIVISION 环境部 DATA DIVISION 数据部 PROCEDURE DIVISION 过程部 节(SECTION)和段(PARAGRAPH) (1)部-节-段 (2)标识部下面不设节,直接设段 (3)过程部可以设节,下面再设段,也可以直接设段 句子、语句和子句 每一段由若干句子...

肖睿的博客 1万+

Cobol语言基础

一、基础知识 1.程序结构 division -部 section -节 paragraphs -段 2.四个部 (1)IDENTIFICATION DIVISION 程序的标识部,位于程序的顶部,主要定义了程序的Id,作者等信息。 (2)ENVIRONMENT DIVISION 环境部 声明了程序运行的环境,指定了程序的输入和输出文件,有两个节组成,配置节和输入输出节 ①配置节 由两个段组成,分别是指定了程序编译的环境节(源计算机)和运行环境(目标计算机) ②输入输出节 由两个段组成 分别是文

zsq_z0304的博客 7512

COBOL 教程

COBOL 教程 - -目录CHAPTER   1 COBOL 概述 CHAPTER   2 过程部初步 CHAPTER   3 标识部和环境部 CHAPTER   4 数据部之一 CHAPTER   5 过程部之二 CHAPTER   6 过程部之三 CHAPTER   7 各部之间的关系及程序举例 CHAPTER   8 联机及批量程序的一些差异 CHAPTER   9 COBOL

zhaozj610的专栏 5003

60 岁的 COBOL 凭什么活到现在?

COBOL将比我们所有人都活得更久,知道为什么吗? 作者 |Steven J. Vaughan-Nichols 译者 |风车云马,责编 | 刘静 出品 | CSDN(ID:CSDNnews) 以下为译文: 计算机最初有机器语言和汇编程序,两者在使用上都不容易。自从后来出现了COBOL,一切都变了。 早期计算机语言的由来 我开始是在IBM 360汇编机上编程...

CSDN资讯 7676

全面COBOL编程入门指南:从基础到项目实战

COBOL(Common Business-Oriented Language,面向商业的通用语言)是一种高级编程语言,诞生于1959年,主要是为了应对商业数据处理的需求。作为一种早期的编程语言之一,COBOL影响了之后许多编程语言的设计,特别是在易读性和对业务逻辑的支持方面。随着时间的推移,COBOL逐渐演化并支持现代编程范式,包括面向对象和模块化编程,尽管其语法保留了较为传统的结构。在COBOL中,PICTURE和USAGE是定义数据描述子句的一部分,它们可以用来创建自定义数据类型。

weixin_42610671的博客 1283

1. 什么是COBOL语言?——《跟老吕学COBOL

1. 什么是COBOL语言?一、COBOL的起源二、COBOL的特点三、COBOL的语法结构1. 数据部(DATA DIVISION)2. 过程部(PROCEDURE DIVISION)3. 环境部(ENVIRONMENT DIVISION)四、COBOL的数据类型五、COBOL的文件操作1. 顺序文件操作2. 索引文件操作3. 文件操作示例4. 文件操作的注意事项六、COBOL的编程风格七、COBOL的应用场景银行业保险业零售业政府机构遗留系统维护八、COBOL的发展历程。

Python老吕的博客 2450

COBOL语言介绍及使用场景

COBOL是一种面向业务的通用计算机编程语言,适用于处理商业应用程序和大型企业级系统。它具有可读性强、稳定性和可靠性等优点,但也存在学习曲线陡峭和缺乏现代特性等缺点。COBOL在金融领域、大型企业应用和遗留系统维护等场景中得到广泛应用。

果酱 の 博客 2853

COBOL语言介绍并推荐入门书籍(10本)

最后,它打印排序后的数组。以上这些书籍都是COBOL语言入门的良好资源,它们提供了不同角度和层次的教学和实践内容,可以根据自己的需求选择适合的书籍进行学习。介绍:这本书是一本经典的COBOL教程,涵盖了COBOL的核心概念和编程技巧,包括模块化编程、文件处理和数据库集成等方面。介绍:这本书适合新手,提供了一个简洁易懂的入门指南,涵盖了COBOL的基础知识,包括语法、数据处理和文件处理等方面。介绍:这本书详细介绍了COBOL的结构化编程方法,通过实例和练习帮助读者理解和掌握COBOL的基本概念和技术。

记录 IT 领域经验与见解的博客 2042

Cobol学习笔记(整理中80%)

01 A03 AA注释:外部文件只有数据结构,没有部节等信息。03 YMD.注释:重定义共享内存地址,一个质变了影响另一个值,不能用在文件节01层,可用在数据单元节01层,层号必须相同,长度相同,重定义子句不能赋初值。

m0_65939803的博客 6435

全面掌握COBOL编程:从基础到实践

COBOL(Common Business-Oriented Language,面向商业的通用语言)是一种高级编程语言,于1959年由美国国家标准化组织(ANS)制定标准。它的诞生主要受到商业界对自动化处理事务需求的推动,尤其是在处理大量数据的银行和保险领域。作为早期编程语言之一,COBOL在金融和政府系统中得到了广泛的应用。COBOL程序的组织结构相当层级化,以便于程序的管理与维护。一个标准的COBOL程序可以划分为几个主要部分,每个部分负责不同的任务:: 包含程序的标识信息,比如程序名。

weixin_29215509的博客 770

什么是Cobol

在这个高速发展的技术时代,我们需要保持开放心态,不断学习和掌握新技术,同时也要敬重和尊重历史上创造出的先进技术。虽然它在当今互联网时代可能显得过时,但在一些传统领域,如finance、保险等,Cobol仍然是一种流行的编程语言。在这篇文章中,我们将介绍Cobol软件开发的一些关键方面,并探讨Cobol在互联网场景下的应用。​虽然Cobol在互联网时代的应用相对较少,但随着finance和保险行业的不断发展,Cobol仍然会持续发挥重要作用。Cobol的特点是:易于使用,易于维护,能够处理大量的数据。

m0_69234258的博客 1040

cobol_在尝试之前不要讨厌COBOL

cobol COBOL是编程语言的Rodney Dangerfield,它不受任何尊重。 它经常因其冗长而被贬低,并被认为是过时的。 然而,COBOL 绝非一成不变的语言 。 它估计处理所有业务交易的85%,并且每年编写50亿行新的COBOL代码。 我作为COBOL程序员工作了10年,但我认为它的声誉不会像人们认为的那样糟糕。 实际上,它非常擅长处理货币和固定格式的记录。 但是COBOL确实...

cuml0912的博客 727
上一篇: JVM复习总结
梁梁梁1101
博客等级 码龄7年 321粉丝 11原创
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值