




已阅读5页,还剩46页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
COBOL语言程序设计,于倩电话-mail:yuqian,课程简介,授课时间:32学时上机时间:16学时教材:COBOL语言(上下册)修订本谭浩强清华大学,1994,主机(大型机)系统,主机系统Mainframe:大型机(mainframe)这个词,最初是指装在非常大的带框铁盒子里的大型计算机系统,以用来同小一些的迷你机和微型机有所区别。大多数时候它却是指system/360开始的一系列的IBM计算机。这个词也可以用来指由其他厂商,如Amdahl,HitachiDataSystems(HDS)制造的兼容的系统。IBM大型机目前多直接称为主机,主机系统得以长盛不衰的主要原因,RAS,I/O处理能力以及ISARAS(Reliability,Availability,Serviceability高可靠性、高可用性、高服务性)是一个IBM常用来描绘它的大型机的词。目前z900大型机的I/O吞吐能力是最低每秒24GB(这是字节数,不是“位”数。)ISA(IBMSystemArchitecture)虽然IBM大型机的整体指令集有了显著改进,IBM保持了惊人的对应用程序的向后兼容。许多最为显著的构架上的变化已经影响了一些只能直接被操作系统调用,而不能被应用程序调用的设备(如I/O子系统)。IBM已经花费了巨大的努力来保证它的客户们不必重写或重编译他们的程序来在新系统上运行。这样,客户要采用新的硬件就更为容易,客户只需要拔下旧系统,换上新系统,而不需要做额外的软件测试工作。,大型机的编程语言COBOL,大型机技术上有很多领先的地方,积累了很多行业应用,一大堆非关系数据库/Cobol程序之类,这些东东没法移植,成为大型机可以吃的老本、继续辉煌的资本。IBM的大型机概念强调的是IO和RAS,追求的是稳定、可靠,主要用于商业管理系统;典型编程语言是Cobol。,第一章COBOL语言概述,1.1COBOL发展概况,COBOL是一个高级程序设计语言,1960由CODASYL委员会(ConferenceonDataSystemsLanguages)提出。以后,新的COBOL标准由美国国家标准组织(ANSI)负责ANSI推出的3个COBOL标准:1968,1974和1985.目前,关于面向对象的COBOL标准正在制定.COBOL是如下单词的简写(COmmonBusinessOrientedLanguage).COBOL设计来主要是进行事务处理,多应用于商业领域,典型的诸如文件导向的应用。而不是设计来进行系统编程。一般来说,没人用COBOL来写操作系统或者编译器.,COBOL商业计算首选语言。40年里,它曾经的对手:PL1,Algol68,Pascal,Modula,Ada,C,C+目前的强大对手:JAVA、C#为代表的新一代语言,Gartnergroup的关于COBOL优势的调查报告:在1997年他们估计全世界有3千亿行的计算机代码正在使用。其中80的是COBOL程序,而其他程序总计只占20。在1999年,他们报告说,超过50的关键事务应用程序仍然会用COBOL语言编写,他们最近估计表明在20042005年度所有新程序(50亿行)的15将用COBOL开发,同时,80的部署在计算机里面的程序将包括以前遗留的COBOL程序。该集团估计,在2002年全世界有大约200万COBOL程序员,而JAVA和C+程序员各自只有100万,是不是很神奇?神奇的COBOL,你是不是对上面的材料感到很惊奇?古老的COBOL在流行的JAVA、C+、VB、C一点都不落下风到底是什么原因呢?软件的两种类型“垂直”软件“水平”软件,“垂直”软件价值上百万美金的程序被开发、或者根据某些特别公司的需要被裁剪、或者按照特殊事务规则进行调整。但是,却只有很少的拷贝被使用。一个例子:美国国防部的MRPII系统,该系统管理着550,000种零件和部件,储备价值高达280亿美金。该系统运行在Amdahl主机系统上,部署在全美国不同的地方,由4百万行COBOL程序构成,“水平”软件像微软的Office一样,功能可能也很强大,代码也很多,但是会有很多个拷贝。因此,每个拷贝的成本并不高。此种软件竞争激烈,一般用C+、JAVA等新语言进行开发,软件利润很高而且更新很快,“垂直”软件一般说来利润并不高,每个拷贝的成本却很高。因此,替换成本很高,因此这种软件生命周期一般都很长。例如对MRPII的用其他语言改写的估价为1亿美金。因此,对现有COBOL程序的维护需要大量COBOL程序员,1.2COBOL语言的特点,最适于数据处理领域数据处理的特点是:算术计算量少而逻辑处理多;输入输出量大;数据间存在着一定的逻辑关系(数据项间有清晰的层次关系,大量的分类排序对打印报表要求较高、多样化等等。COBOL所处理的问题具有数据繁多而运算简单的持点。,COBOL比较接近于自然语言(英语)。COBOL程序看起来很像一篇用英语写的文章。例如:ADDATOB来表示ABB(A加B,结果故在B中)MOVECTOD表示将变量C的值传送到变量D中COBOL大量采用普通英语词汇和句型,学过英语的人看程序感到通俗易懂。,通用性强由于COBOL语言的标准化程度较高。不同厂家生产的计算机系统所提供的COBOL,是COBOL标准的全集或一个子集。一个计算机上的COBOL程序向另一计算机系统上移植,是比较容易实现的。目前主机系统上面的COBOL可移植更好,COBOL的结构严谨,层次分明。每个程序分为四大部分(称为部,division),每个部下面又分为若干节(scction),节下面又分为若干段(paragraph)。每一部分都有固定的程式。这个特点使初学者比较容易通过摹仿别人程序中的有关部分,从而较快地写出自己的程序。,COBOL的缺点是比较繁琐。程序无论大小简繁,一律都要写齐四大部分,对每个部进行必要的定义和说明。因此源程序显得比较冗长。关键字高达300多个,很难记忆。而且很多关键字并不“关键”,可以省略。不过请记住:COBOL世界上使用最多的一种计算机语言,1.3最简单的COBOL程序,1.4COBOL程序的结构,部IDENTIFICATIONDIVISION.(标识部)主要用来指定源程序名字。也可以写入其它用作备忘的某些信息(如日期、作者等)。ENVIRONMENTDIVISION.(环境部)指出程序中用到的数据文件名与计算机系统的设备的对应关系,即把某一文件名与一外部设备联系起来。此外还指定目标程序中使列的专门控制方法及程序所用内存区的大小等DATADIVISION.(数据部)程序中所用到的全部数据(包括输入输出的数据和中间数据)都应在数据中说明它们的类型和所占内存的情况。PROCEDUREDIVISION.(过程都)用来给出程序要执行的指令,使计算机产生相应的操作。例如进行运算或其它处理。,节和段除标识部以外,在每一个部的“部头”的下面,可以有若干个节(SECTION),每一个节以“节头”作标识。每一节下面又可包括若干段(PARAGRAPH)。每一个段都有自己的名字(即段名)。在标识部下面不设节直接设段,句子、语句和子句在过程部中,每一段由若干个句子(Sentence)组成。一个句子是以句号加一个以上的空格束结束的。句子又由语句(Statement)组成。一个句子可以只由一个语句组成,一个语句加一个句点后跟一个(多个)空格就成为一个句子。在一个语句中又可以包含若干个子句(clause)每一于句也有一个动词,它指定某一方面特定的功能。,过程部中程序的结构:部(Division)部可以包含若干节节(Section)节可以包含若干段段(Paragraph)段可以包含若干句子句子(Sentence)句子可以包含若干语句语句(Statement)指定计算机完成一定的操作子句(Clause)指定完成某一方面的特定功能,描述体在数据部中有若干节,每个节中有若干个描述体(Descriptionentry),亦译作描述款目或描述款),每个描述体义由若干个子句构成。,1.5COBOL源程序书写格式,自由格式和固定格式voidmain(void)inta,b,c;a=10;b=20;c=a+b;COBOL必须严格按照规定的格式书写。,ANSI源程序书写格式见图,1.16列,为“标号区”。可以填写6个数字。标号由程序编写者自定,标号应按由小到大的顺序,但不一定连续。标号区内可以写标号也可以不写标号(标号区空白)。标号对源程序的执行结果没有任何影响。在程序编译时是按程序书写的顺讯进行的,而不是按标号大小顺序进行的。2第7列,是“续行标志区”。如果在第7列上写上连接符“-”,则表示本行是紧接在上一行的后面。如果在第7列写“*”,则表示此行是注解行,即此行可由程序员任意写上自己所需的内容,以对程序(或程序的一部分)作说明。它对程序的执行不起任何影响,3第811列,称为“A区”,第8列称“A区边界”。COBOL规定,程序中有些内容,例如部头、节头、段头、层号01,层号77以及文件描述符FD等应从A区开始书写41272列,称“B区”。写程序中的正文部分,例如过程部中的句子只能从B区开始,而不能写到A区去。57380列为“注释区”。程序员如想对源程序的某些行作些简单说明,可写在这8列中,因此写源程厅时注意个应超过第72列,超过的部分在编译时将被舍弃。,写程序的注意事项:每个字符占一格。较早的COBOL版本规定所有字母都应大写,但现在使用的COBOL编译系统允许使用大写或小写字母,二者等价。不过习惯都用大写字母,主机系统一般都用大写字母。相邻的两个字(如COBOL的保留字或用户自己定义的名字)之间必须留一个以上的空格。运算符(如加、减、乘、除、乘方)和等号左右两边必须各留一个空格。在过程部中左括号的左侧和右括号的右侧要留一空格,而内侧不必留空格。逗号、句号、分号的左边不能留空格,而右边应有空格。一个空格和多个空格作用相同,1.6COBOL字符和COBOL字,COBOL字符系统字符集指的是在输入输出操作中允许出现的字符的集合。COBOL字符集指的是COBOL程序中允许出现的字符(用引号括起来的字符串户的字符除外)。,COBOL字符集:,数字:09大写字母:AB小写字母:ab专用字符:,+加号-减号或连接号*乘号或星号/除号=等号,逗号.句号或小数点;分号引号(有的用”)(左括号)右括号大于号空格$美元号,COBOL字,COBOL字是出COBOL字符组成COBOL字不允许超过30个字符保留字用户字,1.7数据名,数据名的概念:数据名(Dataname)可以认为是由程序设计者定义的某一片内存区的符号地址,即用一个符号代表一个地址。数据名相当于其它语言中的变量名,它代表一个具体的数据项。COBOL中指的数据是广义的,即不仅指数值,也可以是字符。,数据名的定名规则每个数据名的长度为130个字符之间。只能由字母、数字和连接符“-”组成,而且其中至少应有一个字母。连字符只能出现在数据名的中间,不能出现在数据名的两端(最前或最后)。如:ABC,RATEOF-PAY3DG4,A1-2-3,1234ABCWANG-LI都是合法的数据名。而:123、JOKN.HENRY,WANG-,-ABC,ATEJ,ABC*DEF,1999-9-9都是不合法的数据名。,数据名中不能出现空格不应该选择COBOL的保留字作为用户定义的数据名(300多个保留字,当心!)数据名最好采用有意义的英文名或者拼音等,1.8常量,常量常数1、数值常量(Numericalliteral)数值常量即数学上的常数。如+12300、451.67、-51.635数值常量是由正负号、小数点、数字09所组成的字符序列注意:小数点不能多于一个,而且不能出现在常数的最右边数值常量长度不能超过18位数字。至少要有一个数字,不能有多于一个符号。数字之间不能有空格,空格是分界符。,2非数值常量(Nonnumericalliteral)用引号括起来的字符串:ABCD、“$123,456.789”、“我是电子科大软件学院的学生”如果想把引号也包括在非数值常量中,例如想显示出ABCD六个字符组成的字符串,按以下方式进行:DISPLAYQUOTEABCDQUOTE注意QUOTE只能在这种情况下使用,不能代替一般意义的引号。非数值常量有120个字符的限制,但不同系统有不同规定。,3、表意常量(FigurativeConstant),1.
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年国网新源公司招聘考试教材及模拟题
- 2025年全断面掘进机项目合作计划书
- 抢维修作业安全措施培训课件
- 2025届北京市第一零一中学高三下学期三模物理试题(含答案)
- 扫黄打非法制课件
- 2025年丽水社工考试题目及答案
- 扇贝效应课件
- 2025年贵州文科联考试卷及答案
- 2025年荆州化学中考试题及答案
- 2025年枣阳数学月考试卷及答案
- 信息技术ppt课件完整版
- 《诗经》英文简介PPT
- 四年级上册音乐全册西师版教案
- 圆锥滚子轴承产品设计
- SMT元器件焊接强推力测试标准doc
- ELA基础介绍PPT课件
- SAP Analytics Cloud分析云解决方案
- 保洁员岗位职责厕所保洁员岗位职责.doc
- 硬笔书法《浅谈书法》历史起源(课堂PPT)
- 员工自愿放弃社保公积金协议、自愿放弃社保协议书、自愿放弃社保声明书
- 2006年河南省大学生志愿服务贫困县计划
评论
0/150
提交评论