面对2000年及传统代码的维护和改进等问题,当代程序员无不感到巨大的压力。本书的出现可以大大缓解这种压力,它为程序员提供了解决这些问题的具体办法和一些从未公开发表的诀窍。\r\n\r\n 全书分三大部分,共28章,第一部分介绍COBOL语言的背景、要素、结构和扩展功能;第二部分讨论了传统代码和传统系统问题;第三部分讲述了COBOL的现代编程问题,介绍了结构化COBOL,面向对象COBOL,图形用户接口,与其它语言集成,以及使用COBOL 2000等问题。\r\n
\r\n
第一部分 COBOL语言 \r\n\r\n 第1章 COBOL简介 \r\n\r\n COBOL及其重要性 \r\n\r\n 标准. 版本与可移植性 \r\n\r\n COBOL简史 \r\n\r\n COBOL工作环境 \r\n\r\n 第2章 COBOL程序概述 \r\n\r\n 一个简单的COBOL程序 \r\n\r\n COBOL语法 \r\n\r\n COBOL元素 \r\n\r\n 源程序格式 \r\n\r\n 程序文本的复制与替换操作 \r\n\r\n COBOL程序结构小结 \r\n\r\n 第3章 COBOL程序部 \r\n\r\n 标识部 \r\n\r\n 环境部 \r\n\r\n 数据部 \r\n\r\n 过程部 \r\n\r\n DAYS-BETWEEN程序 \r\n\r\n 第4章 COBOL从句和语句 \r\n\r\n 数据部使用的从句 \r\n\r\n 算术语句 \r\n\r\n 数据语句 \r\n\r\n 逻辑与控制语句 \r\n\r\n 第5章 表格处理 \r\n\r\n 表格定义 \r\n\r\n 索引 \r\n\r\n 关键字定义 \r\n\r\n 表格初始化 \r\n\r\n 表格操作 \r\n\r\n 第6章 COBOL中的子程序 \r\n\r\n 内部子程序 \r\n\r\n 外部子程序 \r\n\r\n 子程序与范围 \r\n\r\n 子程序执行 \r\n\r\n 改进的DAYS-BETWEEN程序 \r\n\r\n 第7章 文件的输入与输出 \r\n\r\n 文件的概念 \r\n\r\n 环境部项目 \r\n\r\n 数据部中的文件描述符 \r\n\r\n 过程部中的I/O语句 \r\n\r\n 样本I/O程序 \r\n\r\n 第8章 排序与台并功能 \r\n\r\n 排序和合并要求 \r\n\r\n 环境部项目 \r\n\r\n 数据部项目 \r\n\r\n 过程部语句 \r\n\r\n 样本排序程序 \r\n\r\n 第9章 报告编写模块 \r\n\r\n 报表元素 \r\n\r\n COBOL报告程序 \r\n\r\n 报表文件控制项与文件描述项 \r\n\r\n 报表描述项 \r\n\r\n 报表组项目 \r\n\r\n 报告程序语句 \r\n\r\n 报告程序 \r\n\r\n 第10章 内部函数 \r\n\r\n 函数简介 \r\n\r\n 函数 \r\n\r\n 第11章 COBOL调试器 \r\n\r\n 调试行 \r\n\r\n 调试过程 \r\n\r\n 第12章 COBOL扩展功能 \r\n\r\n 公共扩展 \r\n\r\n IBM扩展 \r\n\r\n Fujitsu扩展 \r\n\r\n MicroFocus扩展 \r\n\r\n 第二部分 COBOL传统系统 \r\n\r\n 第13章 传统系统简介 \r\n\r\n 传统系统的含义和意义 \r\n\r\n 传统系统环境 \r\n\r\n COBOL传统代码 \r\n\r\n 第14章 CICS和SQL编程 \r\n\r\n CICS简介 \r\n\r\n COBOL与CICS \r\n\r\n 分布式CICS应用程序 \r\n\r\n SQL简介 \r\n\r\n COBOL与SQL \r\n\r\n 第15章 IMS编程 \r\n\r\n IMS简介 \r\n\r\n IMS语言 \r\n\r\n COBOL与DL/I \r\n\r\n 样本IMS应用程序 \r\n\r\n 联机IMS编程 \r\n\r\n 第16章 JCL编程 \r\n\r\n JCL简介 \r\n\r\n JCL与COBOL \r\n\r\n 常用JCL语句 \r\n\r\n 分类过程 \r\n\r\n 常用实用程序 \r\n\r\n 第17章 编译与连接COBOL程序 \r\n\r\n 执行程序前的准备 \r\n\r\n PC COBOL的编译和连接过程 \r\n\r\n 用IBM实用程序连接 \r\n\r\n 第18章 测试与调试COBOL程序 \r\n\r\n 捕获缺陷 \r\n\r\n 测试考虑 \r\n\r\n 测试方法 \r\n\r\n 测试数据设计 \r\n\r\n 测试技术 \r\n\r\n 进行调试 \r\n\r\n 后续过程 \r\n\r\n 第19章 理解与解决2000年问题 \r\n\r\n 问题的性质 \r\n\r\n 纠正问题的方法 \r\n\r\n 日历和天数编号方法 \r\n\r\n 计算机语言中的日期 \r\n\r\n COBOL应用程序中的Y2K问题 \r\n\r\n COBOL程序的Y2K解决方案 \r\n\r\n 大周末之后 \r\n\r\n 第20章 让程序支持欧元 \r\n\r\n 欧元的故事 \r\n\r\n 技术难点 \r\n\r\n 可能的解决方案 \r\n\r\n 第21章 数据挑战 \r\n\r\n COBOL固定字段定义 \r\n\r\n COBOL数据类 \r\n\r\n COBOL固定文件定义 \r\n\r\n 第三部分 新应用程序开发 \r\n\r\n 第22章 结构化的COBOL \r\n\r\n 结构化编程简介 \r\n\r\n 结构化编程设计 \r\n\r\n 结构化程序编码 \r\n\r\n 结构化编程样本 \r\n\r\n 第23章 下一个版本的COBOL标准 \r\n\r\n 删除的元素 \r\n\r\n 删除模块化与删除分层实现 \r\n\r\n COBOL格式. 字和直接数 \r\n\r\n 编译器指令语句 \r\n\r\n 程序结构与执行 \r\n\r\n 表格处理 \r\n\r\n 文件处理 \r\n\r\n 异常处理 \r\n\r\n 函数. 子程序和原型 \r\n\r\n 日期处理 \r\n\r\n 过程部语句 \r\n\r\n 第24章 面向对象的COBOL语言 \r\n\r\n 面向对象编程简介 \r\n\r\n COBOL中的类和对象 \r\n\r\n COBOL中的其他OOP特性 \r\n\r\n 面向对象异常处理 \r\n\r\n 面向对象的COBOL语言举例 \r\n\r\n 第25章 内部数据表示 \r\n\r\n COBOL标准与内部数据表示 \r\n\r\n 位与字节 \r\n\r\n 影响数据表示的因素 \r\n\r\n OLE. Visual Basic和c语言数据类型. \r\n\r\n 数据表示详解 \r\n\r\n 第26章 在PC机上完成大型机COBOL开发 \r\n\r\n 卸载工具的需求 \r\n\r\n 大型机卸载工具的开发 \r\n\r\n 卸载大型机开发的技术问题 \r\n\r\n PC COBOL产品 \r\n\r\n 第27章 GUI COBOL应用程序 \r\n\r\n GUI简史 \r\n\r\n 事件驱动编程 \r\n\r\n GUI开发工具 \r\n\r\n PowerCOBOL开发环境 \r\n\r\n PoweRCOBOL中的自定义GUI控件 \r\n\r\n 第28章 COBOL与其他语言 \r\n\r\n COBOL与C语言 \r\n\r\n COBOL与Java \r\n\r\n 附录A 64bitCOBOl \r\n\r\n 64bit芯片的好处 \r\n\r\n 64bit环境中的COBOL程序 \r\n\r\n 附录B COBOL保留字 \r\n\r\n 附录C ASCII与EBCDIC字符集 \r\n\r\n 附录D FujitsuCOBOL安装 \r\n\r\n 安装内容 \r\n\r\n 运行安装程序 \r\n\r\n 使用COBOL项目管理器 \r\n\r\n 词汇表 \r\n
\r\n
写书难, 译书也不易. 费尽九牛二虎之力终于耕完最后一个标点符号, 还是留了许多麻烦给编辑. 录入排版人员和校对人员. 当这本书终于与你见面时, 真是一种深深的缘份. 是对同一个主题的兴趣让我们走到了一起, 是日新月异的信息技术让我们走到了一起, 我很珍惜这种缘份, 每下一笔都慎之又慎, 但一个个小bug却仍然在我稍一松懈时钻进了笔端, 使我每次面对自己的作品时, 不由得心跳加快. 呼吸紧张. 希望读者不吝指教, 让我能以更高的警惕性抵御这些bug.
在本书翻译过程中, 得到了周阳生. 刘文红. 邹能东. 彭振庆. 黄志坚. 李耀平. 江文清等同志的大力帮助, 刘文琼. 刘云昌. 刘昌和. 严明英等同志完成了本书的录入与校对工作, 在此深表感谢.
译者
1999年5月
COBOL编程人员急需解决传统代码的维护和改进, 使《COBOL从入门到精通》一书应运而生. 在多年的信息系统上, COBOL提供了坚实的基石, 却很少引起注意. 如今,这个基石经再次修复并重新焕发生机. 随着企业中现代技术的渗透, COBOL必定成为新开发工具中必不可少的部分. 本书使有关的编程人员可以探索传统系统, 将企业带人新世纪.
美国当前的传统代码超过5000亿行. 随着2000年的到来, 有关人士估计, 美国需要50万~70万个熟练的大型机编程人员(加上现有的50万)才能解决美国目前面临的编程危机. 而英国则需要30万个大型机编程人员. 这些编程人员仅仅利用标准语言手册是无法解决工作中面临的问题的.
本书的合作者都深爱COBOL, 这种编程语言在当前的软件开发人员培训中倍受歧视. 我们从人们谈论的COBOL笑话体会到COBOL问题的严重性. 故事是这样的:
一个COBOL编程人员在遇到2000年问题时, 决定把自己速冻起来, 到下个世纪再唤醒. 由于机构调整, 他的身体被忽略了很长时间. 等他终于苏醒时, 他见到的是急切. 热情而陌生的人群. 由于找不到熟人和亲人, 他便问, “我是谁?今夕何年?我怎么会在这里?”他们说, “你好, 这里是华盛顿, 9999年, 我们知道你了解COBOL, 总算等到你了. ”
本书希望弥补这个空白, 让天才的编程人员学习COBOL. 传统代码环境及其现代应用.
本书的读者对象
本书适用于需要维护传统代码. 提供2000年方案或开发现代COBOL应用程序的编程人员. 与其他有关基础COBOL编程的图书不同的是, 本书着重介绍修改现有代码中文档资料未说明的问题.
对于学过其他语言的编程人员, 本书简化了COBOL开发环境的简述. 从其他软件开发环境向COBOL开发环境的过渡, 通常是比较困难的. 对于COBOL编程有经验的用户, 本书提供了该语言的新东西, 介绍了当前软件开发所需的概念, 如面向对象编程和图形用户接口(GUI)开发.
本书不是编程者的入门教材, 阅读本书, 需要读者有COBOL或其他语言的编程经验. 即使是不熟悉COBOL和传统环境, 但最好也应编写过或修改过程序.
本书内容
本书由三个部分和四个附录组成. 第一部分介绍COBOL语言的细节, 我们用1985修订的COBOL标准作为本书的基础, 大多数传统代码都是基于这个标准. 第1章介绍COBOL的背景及其在商业环境中的重要性. 第2—11章介绍COBOL程序的元素和COBOL语言的结构.
第一部分最后的第12章介绍各种COBOL版本中提供的COBOL扩展功能.
第二部分介绍COBOL传统代码. 第13章说明, 为什么维护传统代码是重要的问题, 并介绍传统系统的常见软硬件环境. 第14~16章详细介绍四个主要的编程领域:CICS(客户信息控制系统). SQL(结构化查询语言). IMS(信息管理系统)和JCL(作业控制语言)系统. 第17章和第18章介绍传统系统的编译. 连接. 测试和调试, 第19章介绍2000年问题的方案, 第20章介绍如何处理欧元问题, 使程序能支持欧元. 第21章介绍处理常见COBOL程序数据挑战的准则.
第三部分介绍COBOL的现代编程问题. 其中, 第22章介绍结构化的COBOL编程, 第23章介绍COBOL的下一个标准(COBOL 2000), 第24章介绍COBOL面向对象编程, 如果要建立COBOL与其他语言之间的通信, 则第25章提供了内部数据类型表示的细节, 第26章提供了将COBOL应用程序开发从大型机转移到PC环境的方法, 第27章介绍了如何建立COBOL程序的图形用户接口, 以及使用本书光盘所带软件的练习. 本部分的最后一章, 第28章介绍COBOL与C. COBOL与JAVA的混合语言编程.
本书的附录提供了其他材料和参考资料:
·附录A介绍未来的64位COBOL.
·附录B介绍COBOL保留字的快速参考.
·附录C介绍A3CII和EBCDIC字符集.
·附录D介绍本书选配光盘中的Fujitsu COBOL4.
本书中分布着许多提示. 说明和警告, 它们在文中以特殊的楷体示出, 其中包含了一些有价值的补充信息.
本书选配光盘
本书选配光盘包含Fujitsu COBOL4的Windows版编译器. 这个一流的编译器包括了所有COBOL 2000的特性, 如面向对象的COBOL语言元素. 使用Fujitsu编译器可以编写新代码或测试本书中的样本代码.
关于安装并使用Fujitsu COBOl4的信息,见附录D. 本书的第27章还介绍了Fujitsu COBOL4所带的组件PoweRCOBOL建立OUI应用程序和自定义控件的步骤.
本书的约定
本书的程序和代码采用等宽字体. COBOL语言语法采用直接注释系统, 直接注释系统包括如下元素:
·引用格式中的大写字母是COBOL单字, 在COBOL中有特定含义, 只能在指定上下文中使用. 保留字加下划线时, 是格式中所必需的, 不加下划线时则是可选的, 对元素的含义没有影响, 可加可不加. 加上可选保留字通常能使语句更易读(附录B列出了COBOL保留字).
·小写字母泛指非标准环境定义的COBOL元素, 所选名称用于表示其含义. 在说明COBOL项目时, 小写字母后面通常加上一个整数(例如identlfier—1). 整数表示该元素出现的次序.
·中括号([])中的部分是元素中的可选部分. 如果中括号内有竖条, 则可以选择其中一项内容.
·大括号({})中的部分是必需的元素. 如果大括号内有竖条, 则可以选择其中一项内容.
·选择标识符(‖)包括一组元素, 其中要有一个或几个元素, 但任何无素都不能重复.
·省略号(…)表示格式中前面的元素可以重复. 前面的元素可以是一个元素(小写字母单词引用的内容)或放在大括号. 中括号中的整组元素.
·格式中出现的特殊字符(十-><=>=<=)是必需的, 即使不加下划线, 也具有COBOL单字的状态.
·标点符号(逗号和分号)放在空格后面, 可以用在格式中使用空格处, 对格式没有影响. 标点符号(句号)放在空格后面具有必需字的状态.
第2章将详细介绍语法规则, 包括例子和样本程序.
本书作者
本书是集体创作的的结果, 是Internet. 电话和人类的共同成果. 我们到处寻找COBOL各个方面的专家, 因而得到了各方面的建议, 使各位专家的高见尽现本书之中. 关于各位专家及其贡献, 见本书最后的“关于贡献者”.
2000年以后
据美国政府备忘录称, 有些政府机构到2012年还会抱怨2000年问题. 我们见到了这份备忘录, 但没有验证其来源, 因此不知是否确有其事.
我们相信, COBOL和COBOL编程人员的需求不会很快消失. 在遇到2000年问题前, 我们尚未发现COBOL的缺陷. 但我们知道, 2000年问题是巨大的, 其影响也是深远的. 掌握COBOL, 会帮助读者长期立于不败之地. 特别地, 如果能掌握COBOL并用于企业的实际应用中. 我们相信, 本书能提供读者所需要的一切.
欢迎指教, 请发e-mail到cobol@baroudi. com, 可以查阅本书在Sybex Web站点www. sybex. com上的页面, 也可以查阅CarolBaroudi的Web站点www. barouki.com, 其中有本书的更新信息及各位贡献者的详细信息, 包括e—mail地址和站点链接.