COBOL 编程语言简介


DUT 单位:大连理工大学 作者:陆坤,李凤岐,姜厚云 1 大型主机平台系统应用开发基础 教育部-IBM精品课程 DUT 2 第二章 COBOL简介 ™2.1COBOL语法格式 ™2.2 大型机COBOL环境介绍 ™2.3 简单COBOL样本程序 DUT 3 第一节 COBOL语法格式 ™ COBOL的历史 ™ COBOL的特点 ™ COBOL程序的结构 ™ COBOL程序的书写格式 ™ COBOL字符和COBOL字 ™ 数据名 ™ 常量 ™ 数据的层次 DUT COBOL的历史 ‡ COmmon Business Oriented Language 用于商业数据处理与管理,如:银行,证券,金融,人事 管理,财会,统计报表,情报检索等等; ‡ 是世界上第一个商用语言。 ‡ 1959年5月 美国国防部召开数据系统语言会议 ‡ 1959年12月 第一个COBOL语言文本 ‡ 1960年4月 正式发表COBOL 60, 经过扩充完善COBOL 61 --- ANSI COBOL 61 --- 最早的版本 ‡ 1965年COBOL 65 --- ANSI COBOL 68 --- ISO COBOL 72 ‡ 1972年COBOL 72 --- ANSI COBOL 74 --- ISO COBOL 78 ‡ ANSI COBOL 85 --- 应用最广泛的版本 ‡ ANSI COBOL 2002 --- “最新版本” DUT COBOL重要性 ‡ 世界上70%的数据都是用COBOL语言处理的; ‡ 并且90%的ATM事务处理用的都是COBOL语言。每天在 线处理的COBOL事务有300亿次。 ‡ 500强中有492家(包括全部的100强)使用了COBOL语 言; ‡ 目前在COBOL方面的投资已经超过3万亿美元,,据称用 COBOL书写的程序超过了1000亿行,并且以每年大约50 亿行代码的速度在增长。 ‡ 主要是应用于银行、金融和会计行业等非常重要的商业数 据处理领域; ‡ 重新编写COBOL语言的可靠的应用软件也是不实际或是 从商业角度上并不可行的 ;只要大型机存在,COBOL就 不会消失 ; DUT COBOL的特点 ‡ COBOL是一种面向数据处理的,面向文件的,面向过程的 高级编程语言,功能强大又极为冗长; ‡ 适用于商业领域:算术运算简单但运算量大,数据输入输 出量非常大。 ‡ 但不用于设计系统程序,一般,没有人用之来写操作系统 和编译器; ‡ 语法接近自然语言(英语),成文自明,例如: ADD A TO B GIVING C MOVE ‘HELLO’ TO D ‡ 遵循ISO标准,通用性强,移植方便 ‡ 格式固定,结构严谨,层次分明 ‡ 缺点是比较繁琐 DUT 最简单的COBOL程序 DUT COBOL程序的结构 COBOL程序 环境部 数据部 过程部 节 节 节 标识部 段 句子 描述体 段 句子 语句 子句 句子 段 DUT COBOL程序的结构 ‡ 部下设置节,节下设段或描述体 ‡ 标识部下直接定义段 ‡ 环境部下定义节,节下定义段 ‡ 数据部下定义节,节下定义描述体 ‡ 过程部下定义节,节下定义段 (复杂程序) 过程部下也可以直接定义段 (一般程序) DUT COBOL程序的结构 ‡ DIVISION(部) ¾ IDENTIFICATION DIVISION (标识部) 主要指定源程序的名称,也可记录备忘信息 如:日期、作者等 ¾ ENVIRONMENT DIVISION (环境部) 指出程序中用到的数据文件名与系统设备的对应关系 ¾ DATA DIVISION (数据部) 说明程序中所有数据的类型和所占内存大小 ¾ PROCEDURE DIVISION (过程部) 定义程序要执行的指令,是程序的核心 ¾ 某些部可以省略,但顺序不可以改变 DUT COBOL程序的结构 SECTION and PARAGRAPH(节与段) ‡ 除标识部外,每个部下设若干节; ‡ 节的定义从节名开始到下一个节名或文本结束为止; ‡ 每一个节下又可以包含若干段,每个段有自己的名字; ‡ 段由一个或多个句子组成; ‡ 段的定义从段名开始到下一个段名或文本结束为止 DUT COBOL程序的结构 程序 IDENTIFICATION DIVISION. 段 ….. ENIRONMENT DIVISION. 节 段 …… 节 …… DATA DIVISION. 节 描述体 …… PROCEDURE DIVISION. (节) 段 ……. DUT COBOL程序的结构 ‡ 文件描述体只能在数据部中定义,用于描述外部文件的属 性及其记录的格式 ‡ 文件描述体用FD(File Description)语句定义,详见数据部 DUT COBOL程序的结构 ‡ 句子,语句和子句(Sentence, Statement,clause) ¾ 在过程部中,每一段由若干个句子组成。 ¾ 句子由语句组成,语句可以包含若干子句 ¾ 句子以一个句号加一个以上的空格来结束 ¾ 每个语句都是一条完整的指令,用相应的动词表示其操作 ¾ 子句也是一个动词,指定某一方面特定的功能 DUT COBOL程序的结构 ™ 过程部中程序结构: 部(DIVISION) 节(SECTION) 段(PARAGRAGH) 句子(Sentence) 语句(Statement) 子句(Clause) DUT COBOL程序的结构总揽 COBOL程序 环境部 数据部 过程部 节 节 节 标识部 段 句子 描述体 段 句子 语句 子句 句子 段 DUT COBOL程序的书写格式 123456 7 8 11 12 72 73 80 IDEN PROG ENVI DATA PROC S1. TIFICATION DIVISION. (标识部) RAM-ID. EXAM1. (程序名) RONMENT DIVISION. (环境部) DIVISION. (数据部) EDURE DIVISION. (过程部) DISPLAY ‘HELLO,COBOL!’ STOP RUN. 标号区 续 行 区 A 区 B区 (正文区) 注释区 DUT COBOL程序的书写格式 ‡ ANSI格式 ‡ 标准COBOL程序每行80列,被分为五个区域 ‡ 第1-6列为 “标号区” ▪标号是6位数字,应从小到大,但不一定连续 ▪标号只是方便查阅程序,可以省略 ‡ 第7列为 “注释标志区” , “续行区” ▪使用 “*” 表示本行是注释 ▪使用 “-” 表示本行是紧接在上一行后面 续行第12列用单引号,续行内容接着书写 DUT COBOL程序的书写格式 ‡ 第8-11列为 “A区” ▪程序中有些内容必须从该区开始书写,如: 部、节、段头,文件描述符(FD) ,层号01和77 ‡ 第12-72列为 “B区” ▪程序正文部分,过程部句子必须从该区开始书写 ‡ 第73-80列为 “注释区” ▪写入此区的内容在编译时被忽略 DUT COBOL程序的书写格式 ‡ 大小写字母等价,但引号中的字符除外,如: ADD A TO B = add A To b DISPLAY ‘HELLO’ ≠ DISPLAY ‘hello’ ‡ 相邻的两个COBOL字之间有一个以上的空格 ‡ 运算符和等号左右必须各有一个以上的空格; 圆括号外侧必须有一个以上的空格,内侧不必 如:COMPUTE R = A - (B + C)/D 否则编译时有警告信息 ‡ 逗号,句号,分号左边不能有空格,而右边应有 如:DISPLAY ‘A= ’, A DUT COBOL字符和COBOL字 ‡COBOL字符是指在程序中允许出现的字符 包括数字,大小写字母及下面15个专用符号: +,-,*,/,=,逗号,句号,分号,引号, $,(,),<,>,空格 ‡COBOL字是由上述字符组成的最小单位 保留字: 在COBOL已经规定专门用途的字 ( 300多个) 用户字: 用户自定义的名字 如:程序名,文件名,节名,段名,数据名等 DUT 22 第二节 大型机COBOL环境介绍 ™概述 ™创建COBOL源程序 ™创建编译链接JCL ™创建运行JCL ™查看运行结果 DUT 概述 ‡ 通过提交JCL脚本调用COBOL编译器对COBOL源程序进行 编译链接和运行 DUT 创建COBOL源程序 ‡ 创建分区数据集TE×××.COBOL.SOURCE 存放源程序, 方便对其管理 DUT 创建COBOL源程序 ‡ 在分区数据集SOURCE中建立源程序HELLO: TE×××.COBOL.SOURCE(HELLO) DUT 创建编译链接JCL ‡ 创建分区数据集TE×××.COBOL.LOAD 存放可执行模块 (Load Model), 方便对其管理 DUT 创建编译链接JCL ‡ 通过调用IGYWCL程序对源文件编译链接,生成可执行模 块存于指定LOAD数据集 DUT 创建运行JCL ‡ 运行LOAD数据集中指定的可执行模块HELLO DUT 查看运行结果 ‡ 在H队列中可以查看运行结果 DUT 30 第三节 简单COBOL样本程序 ™例1: 了解COBOL程序的基本结构 ™例2: 变量定义,赋值,运算及输出 DUT 了解COBOL程序的基本结构 DUT 变量定义,赋值,运算及输出 DUT Figure 17-01 The system flowchart for a COBOL compile- link-and-go procedure DUTDD statements used with the cataloged procedures 过程见:IGY330.SIGYPROC(IGYWCL) Step ddname Description COB2/COBOL SYSIN Source program input for the COBOL compiler. SYSLIB The copy library or libraries. SYSLIN Object module output. LKED SYSLIB The subprogram library or libraries. SYSLIN Object module input. SYSIN Additional object module input. SYSLMOD Load module output. GO SYSOUT Output from DISPLAY statements. SYSIN Input for ACCEPT statements. SYSDBOUT Symbolic debugging output. SYSUDUMP Abnormal termination (or storage dump) output. SYSABEND DUT编译链接COBOL程序的标准JCL ***************************** Top of Data *********************************** //UTE21A JOB ,'LU KUN',CLASS=A, // MSGCLASS=X,MSGLEVEL=(1,1), // NOTIFY=&SYSUID //JOBPROC JCLLIB ORDER=IGY330.SIGYPROC //*JCLLIB一般不用指定,默认从系统库中找,如SYS1.PROCLIB, ADCD.ZOSV1R5.PROCLIB //STEP1 EXEC IGYWCLG //COBOL.SYSIN DD DSN=UTE21.COBOL.SOURCE(COB1),DISP=SHR //*Source program input for the COBOL compiler. //*COBOL.SYSLIB DD DSN=UTE21.COBOL.COPYLIB,DISP=SHR //*The copy library or libraries. //*--------------------------------------------------------------------* //LKED.SYSLMOD DD DSN=UTE21.COBOL.LOAD(COB1),DISP=SHR //*LOAD Module output //*LKED.SYSLIB DD //* DD DSN=UTE21.COBOL.OBJLIB,DISP=SHR //*the SYSLIB statement concatenates a user library with the library that’s provided by the IBM //*procedure because the COBOL program uses object modules from both libraries DUT 36 www.themegallery.com
还剩35页未读

继续阅读

下载pdf到电脑,查找使用更方便

pdf的实际排版效果,会与网站的显示效果略有不同!!

需要 8 金币 [ 分享pdf获得金币 ] 0 人已下载

下载pdf

pdf贡献者

hhm4202

贡献于2012-04-21

下载需要 8 金币 [金币充值 ]
亲,您也可以通过 分享原创pdf 来获得金币奖励!
下载pdf