《《COBOL程序设计》PPT课件.ppt》由会员分享,可在线阅读,更多相关《《COBOL程序设计》PPT课件.ppt(51页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、COBOL语言程序设计语言程序设计于倩于倩于倩于倩电话:电话:电话:电话:课程简介n授课时间:32学时n上机时间:16学时n教材:COBOL语言(上上下册)修订本 谭浩强 清华大学,1994主机(大型机)系统n主机系统Mainframe:q大型机(mainframe)这个词,最初是指装在非常大的带框铁盒子里的大型计算机系统,以用来同小一些的迷你机和微型机有所区别。q大多数时候它却是指system/360 开始的一系列的IBM计算机。这个词也可以用来指由其他厂商,如Amdahl,Hitachi Data Systems(HDS)制造的兼容的系统。qIBM大型机目前多直接称为主机主机系统得以长盛不
2、衰的主要原因主机系统得以长盛不衰的主要原因 nRAS,I/O处理能力以及ISA qRAS(Reliability,Availability,Serviceability 高可靠性、高可用性、高服务性)是一个IBM常用来描绘它的大型机的词。q目前z900大型机的I/O吞吐能力是最低每秒24GB(这是字节数,不是“位”数。)qISA(IBM System Architecture)虽然IBM大型机的整体指令集有了显著改进,IBM保持了惊人的对应用程序的向后兼容。许多最为显著的构架上的变化已经影响了一些只能直接被操作系统调用,而不能被应用程序调用的设备(如I/O子系统)。IBM已经花费了巨大的努力来
3、保证它的客户们不必重写或重编译他们的程序来在新系统上运行。这样,客户要采用新的硬件就更为容易,客户只需要拔下旧系统,换上新系统,而不需要做额外的软件测试工作。大型机的编程语言COBOLn大型机技术上有很多领先的地方,积累了很多行业应用,一大堆非关系数据库/Cobol程序之类,这些东东没法移植,成为大型机可以吃的老本、继续辉煌的资本。nIBM的大型机概念强调的是IO和RAS,追求的是稳定、可靠,主要用于商业管理系统;典型编程语言是Cobol。第一章 COBOL语言概述1.1 COBOL发展概况nCOBOL是一个高级程序设计语言,1960由 CODASYL 委员会(Conference on Da
4、ta Systems Languages)提出。以后,新的COBOL标准由美国国家标准组织(ANSI)负责nANSI推出的3个COBOL标准:1968,1974和1985.目前,关于面向对象的COBOL标准正在制定.nCOBOL是如下单词的简写(COmmon Business Oriented Language).COBOL设计来主要是进行事务处理,多应用于商业领域,典型的诸如文件导向的应用。n而不是设计来进行系统编程。一般来说,没人用COBOL来写操作系统或者编译器.nCOBOL商业计算首选语言。n40年里,它曾经的对手:qPL1,Algol68,Pascal,Modula,Ada,C,C+
5、n目前的强大对手:JAVA、C#为代表的新一代语言Gartner group 的关于COBOL优势的调查报告:n在1997年他们估计全世界有3千亿行的计算机代码正在使用。其中80的是COBOL程序,而其他程序总计只占20。n在1999年,他们报告说,超过50的关键事务应用程序仍然会用COBOL语言编写,他们最近估计表明在20042005年度所有新程序(50亿行)的15将用COBOL开发,同时,80的部署在计算机里面的程序将包括以前遗留的COBOL程序。n该集团估计,在2002年全世界有大约200万COBOL程序员,而JAVA和C+程序员各自只有100万是不是很神奇?神奇的COBOLn你是不是对
6、上面的材料感到很惊奇?n古老的COBOL在流行的JAVA、C+、VB、C一点都不落下风n到底是什么原因呢?软件的两种类型q“垂直”软件q“水平”软件n“垂直”软件价值上百万美金的程序被开发、或者根据某些特别公司的需要被裁剪、或者按照特殊事务规则进行调整。但是,却只有很少的拷贝被使用。一个例子:q美国国防部的MRP II系统,该系统管理着550,000种零件和部件,储备价值高达280亿美金。该系统运行在Amdahl主机系统上,部署在全美国不同的地方,由4百万行COBOL程序构成n“水平”软件像微软的Office一样,功能可能也很强大,代码也很多,但是会有很多个拷贝。因此,每个拷贝的成本并不高。此
7、种软件竞争激烈,一般用C+、JAVA等新语言进行开发,软件利润很高而且更新很快n“垂直”软件一般说来利润并不高,每个拷贝的成本却很高。因此,替换成本很高,因此这种软件生命周期一般都很长。例如对MRP II的用其他语言改写的估价为1亿美金。因此,对现有COBOL程序的维护需要大量COBOL程序员1.2 COBOL语言的特点n最适于数据处理领域q 数据处理的特点是数据处理的特点是:算术计算量少而逻辑处理多;输入输出量大;数据间存在着一定的逻辑关系(数据项间有清晰的层次关系,大量的分类排序对打印报表要求较高、多样化等等。q COBOL所处理的问题具有数据繁多而运算简单的持点。n COBOL比较接近于
8、自然语言(英语)。qCOBOL程序看起来很像一篇用英语写的文章。例如:nADD A TO B来表示ABB(A加B,结果故在B中)nMOVE C TO D表示将变量C的值传送到变量D中qCOBOL大量采用普通英语词汇和句型,学过英语的人看程序感到通俗易懂。n通用性强q由于COBOL语言的标准化程度较高。不同厂家生产的计算机系统所提供的COBOL,是COBOL标准的全集或一个子集。一个计算机上的COBOL程序向另一计算机系统上移植,是比较容易实现的。q目前主机系统上面的COBOL可移植更好nCOBOL的结构严谨,层次分明。q每个程序分为四大部分(称为部,division),每个部下面又分为若干节(
9、scction),节下面又分为若干段(paragraph)。每一部分都有固定的程式。这个特点使初学者比较容易通过摹仿别人程序中的有关部分,从而较快地写出自己的程序。nCOBOL的缺点是比较繁琐。q程序无论大小简繁,一律都要写齐四大部分,对每个部进行必要的定义和说明。因此源程序显得比较冗长。关键字高达300多个,很难记忆。而且很多关键字并不“关键”,可以省略。n不过请记住:COBOL世界上使用最多的一种计算机语言1.3 最简单的COBOL程序1.4 COBOL程序的结构n部q IDENTIFICATION DIVISION.n(标识部)主要用来指定源程序名字。也可以写入其它用作备忘的某些信息(如
10、日期、作者等)。qENVIRONMENT DIVISION.n(环境部)指出程序中用到的数据文件名与计算机系统的设备的对应关系,即把某一文件名与一外部设备联系起来。此外还指定目标程序中使列的专门控制方法及程序所用内存区的大小等qDATA DIVISION.n(数据部)程序中所用到的全部数据(包括输入输出的数据和中间数据)都应在数据中说明它们的类型和所占内存的情况。qPROCEDURE DIVISION.n(过程都)用来给出程序要执行的指令,使计算机产生相应的操作。例如进行运算或其它处理。n节和段q 除标识部以外,在每一个部的“部头”的下面,可以有若干个节(SECTION),每一个节以“节头”作
11、标识。q每一节下面又可包括若干段(PARAGRAPH)。每一个段都有自己的名字(即段名)。q在标识部下面不设节直接设段n句子、语句和子句q 在过程部中,每一段由若干个句子(Sentence)组成。一个句子是以句号加一个以上的空格束结束的。q句子又由语句(Statement)组成。q 一个句子可以只由一个语句组成,一个语句加一个句点后跟一个(多个)空格就成为一个句子。q 在一个语句中又可以包含若干个子句(clause)每一于句也有一个动词,它指定某一方面特定的功能。q过程部中程序的结构:n部(Division)部可以包含若干节q节(Section)节可以包含若干段段(Paragraph)段可以包
12、含若干句子 句子(Sentence)句子可以包含若干语句 语句(Statement)指定计算机完成一定的操作 子句(Clause)指定完成某一方面的特定功能n描述体q 在数据部中有若干节,每个节中有若干个描述体(Description entry),亦译作描述款目或描述款),每个描述体义由若干个子句构成。1.5 COBOL源程序书写格式n自由格式和固定格式nvoid main(void)int a,b,c;a=10;b=20;c=a+b;nCOBOL必须严格按照规定的格式书写。nANSI源程序书写格式见图n1.16列,为“标号区”。可以填写6个数字。标号由程序编写者自定,标号应按由小到大的顺序
13、,但不一定连续。标号区内可以写标号也可以不写标号(标号区空白)。标号对源程序的执行结果没有任何影响。在程序编译时是按程序书写的顺讯进行的,而不是按标号大小顺序进行的。n 2第7列,是“续行标志区”。如果在第7列上写上连接符“-”,则表示本行是紧接在上一行的后面。如果在第7列写“*”,则表示此行是注解行,即此行可由程序员任意写上自己所需的内容,以对程序(或程序的一部分)作说明。它对程序的执行不起任何影响n 3第811列,称为“A 区”,第8列称“A区边界”。COBOL规定,程序中有些内容,例如部头、节头、段头、层号层号01,层号,层号77以及文件描述符FD等应从A区开始书写n 41272列,称“
14、B区”。写程序中的正文部分,例如过程部中的句子只能从B区开始,而不能写到A区去。n 57380列为“注释区”。程序员如想对源程序的某些行作些简单说明,可写在这8列中,因此写源程厅时注意个应超过第72列,超过的部分在编译时将被舍弃。n写程序的注意事项:1.每个字符占一格。2.较早的COBOL版本规定所有字母都应大写大写大写大写,但现在使用的COBOL编译系统允许使用大写或小写字母,二者等价。不过习惯都用大写字母,主机系统一般都用大写字母。3.相邻的两个字(如COBOL的保留字或用户自己定义的名字)之间必须留一个以上的空格。4.运算符(如加、减、乘、除、乘方)和等号左右两边必须各留一个空格。在过程
15、部中左括号的左侧和右括号的右侧要留一空格,而内侧不必留空格。5.逗号、句号、分号的左边不能留空格,而右边应有空格。6.一个空格和多个空格作用相同1.6 COBOL字符和COBOL字nCOBOL字符n系统字符集指的是在输入输出操作中允许出现的字符的集合。n COBOL字符集指的是COBOL程序中允许出现的字符(用引号括起来的字符串户的字符除外)。COBOL字符集:q数字:09q大写字母:ABq小写字母:abq专用字符:q+加号q-减号或连接号q*乘号或星号q/除号q=等号q,逗号q.句号或小数点q;分号q 引号(有的用”)q(左括号q)右括号q 大于号q 空格q$美元号COBOL字nCOBOL字
16、是出COBOL字符组成nCOBOL字不允许超过30个字符n保留字n用户字1.7 数据名n数据名的概念:q数据名(Data name)可以认为是由程序设计者定义的某一片内存区的符号地址,即用一个符号代表一个地址。q 数据名相当于其它语言中的变量名,它代表一个具体的数据项。COBOL中指的数据是广义的,即不仅指数值,也可以是字符。n数据名的定名规则1.每个数据名的长度为130个字符之间。2.只能由字母、数字和连接符“-”组成,而且其中至少应有一个字母。连字符只能出现在数据名的中间,不能出现在数据名的两端(最前或最后)。如:ABC,RATEOF-PAY3DG 4,A1-2-3,1234ABCWANG
17、-LI都是合法的数据名。而:123、,WANG-,-ABC,ATEJ,ABC*DEF,1999-9-9都是不合法的数据名。3.数据名中不能出现空格4.不应该选择COBOL的保留字作为用户定义的数据名(300多个保留字,当心!)5.数据名最好采用有意义的英文名或者拼音等1.8 常量常量常数n1、数值常量(Numerical literal)q 数值常量即数学上的常数。如+12300、q 数值常量是由正负号、小数点、数字09所组成的字符序列q注意:小数点不能多于一个,而且不能出现在常数的最右边数值常量长度不能超过18位数字。至少要有一个数字,不能有多于一个符号。数字之间不能有空格,空格是分界符。n
18、2 非数值常量(Nonnumerical literal)q用引号括起来的字符串字符串字符串字符串:nABCD、“$123,456.789”、“我是电子科大软件学院的学生”q如果想把引号也包括在非数值常量中,例如想显示出ABCD六个字符组成的字符串,按以下方式进行:nDISPLAY QUOTEABCDQUOTEq注意QUOTE只能在这种情况下使用,不能代替一般意义的引号。q非数值常量有120个字符的限制,但不同系统有不同规定。n3、表意常量(Figurative Constant)1.9 COBOL所处理的数据的特点n1、层次的概念n01 GZTJq02 ZGMq02 SRn04 JBGZn04 FJGZn04 YBBZq02 KCn04 BSJn04 FZFn04 SDFn04 TEFq02 SFGZn 为了反映某数据在一个层次结构中的层次,我们引进层次的概念,层号用二位整数来表示。用不同的层号表示它们之间的从属关系。n初等项n组合项n2、记录和文件qq记录记录记录记录(record)是具有一定层次关系的一组数据项的最大集合。是内存中具有独卞逻辑含义的最大可存取项,具有最高的层次,即层号为01。q多个记录可以组成一个文件文件文件文件(file)q多个记录可以保存在数据库的表中作业:作业:2、3、4、5