COBOL编程:无需打孔卡

披露: 您的支持有助于保持网站的正常运行!我们会为此页面上推荐的某些服务收取推荐费.


COBOL或COmmon面向业务的语言是一种用于业务计算的传统计算机编程语言。它于1950年代后期首次亮相,并在随后的几十年中被许多行业广泛使用。.

最初在1960年代至1990年代之间用COBOL内置的大量软件仍在运行,通常为关键任务系统提供支持,这些系统使普通人每天与之交互,例如银行系统,支付处理,保险承销和交通控制。.

COBOL是仍然最常用的最古老的编程语言之一,可能仅次于早于几年的FORTRAN。 (尽管如此,世界上仍在运行的COBOL比FORTRAN还多。)

COBOL的历史

在1950年代,计算机开始在商业领域中崭露头角。但是随着这些新机器的成本开始逐渐下降,对其进行实际编程的成本正在上升.

此外,对于新一代的硬件,通常必须几乎完全重写软件程序才能在更新的机器上工作-将程序翻译为在新系统上工作的成本约为开发第一台软件的成本的3/4。地点.

考虑到这些成本,一群企业领导者以及学者和计算机制造商在1959年开会讨论了解决此问题的方法。他们要求国防部(该部门正在资助大量与计算机相关的研究和开发)赞助一种新的编程语言的开发。.

这种新语言可以在机器之间移植,并且适合于大型企业所需的数据处理任务。 (Fortran当时的便携性受到限制,而且不适合企业和行业最需要的任务类型。)

由于这种新语言将成为“通用”(即许多硬件体系结构的通用语言)和“面向业务”的语言,因此最终被命名为COBOL.

国防部对这一要求的回应是热情的;他们遇到的问题与这些业务负责人遇到的问题相同.

国防部操作了200多台计算机,并订购了另外200台计算机。他们的软件开发成本也在迅速增加,他们在编程上花费了超过2亿美元.

国防部数据系统研究人员主任查尔斯·菲利普斯(Charles A Phillips)召集了与该小组的会议,在会议上阐述了新语言的主要功能。 COBOL应该:

  • 在许多不同的计算机上工作相同

  • 通过使用许多简单的英语关键字和直观的语法来鼓励更多的人成为程序员

  • 能够改变

  • 不受当前硬件技术的限制

  • 易于使用.

这次会议的结果是该语言的第一个版本COBOL-60的快速开发和发布(它于1960年发布)。它受到FLOW-MATIC的重大影响-它的发明者Grace Hopper是技术顾问-并结合了IBM COMTRAN的一些想法.

COBOL的早期开发面临许多问题,这些问题有可能使整个过程脱轨-制造商,学者,商业领袖和军方的利益冲突。按委员会设计的方法;商业和个人竞争;可笑的最后期限.

尽管存在这些问题,但是创建COBOL的努力还是取得了惊人的成绩。讨论此问题的初次会议于1959年4月举行,最初的规格于1960年1月获得批准。.

计算机制造商立即开始为该语言编写编译器。在1960年底之前,第一个有效的COBOL程序是在两个不同的计算机系统上编写,编译和运行的.

COBOL很快获得了人们的关注,并成为了商务计算的主要语言,几乎是一整夜。到1970年,它是世界上使用最广泛的编程语言.

COBOL还预计开放源代码和自由软件运动将在接下来的二十年里真正开始。考虑到COBOL的发展方式,没有任何公司或集团可以拥有它。原始语言手册带有以下注意事项:

COBOL是一种行业语言,不是任何公司或公司集团或任何组织或组织集团的财产.

发行历史

COBOL版本以其发布年份命名。 (以真正的COBOL方式,这些年份用两位数字表示,直到2000年代).

  • COBOL-61主要致力于错误修复和澄清,从而使语法明确.

  • COBOL-65继续进行清理语言的工作,并且还增加了用于处理表和大容量存储文件的功能.

  • 在以61、61扩展版和65的一些版本差异之后,COBOL-68旨在使语言标准化。它是在美国标准协会的主持下创建的,被称为ANSI-COBOL。此版本成为该语言进一步发展的基础.

  • 1968年至1973年之间,原始语言开发委员会(名为CODASYL)发布了四个新的语言规范版本。这些增加了许多新功能。不幸的是,几乎没有人使用COBOL意识到它们。该语言的大多数开发人员社区都将重点放在ANSI标准上.

  • COBOL-74是ANSI标准的修订版,其中包含许多新功能,包括文件组织,DELETE和内存分段模块。这是一个重大变化,不向后兼容。早期版本编写的程序无法在COBOL-74编译器上编译.

  • 拟议的1980年修订版(按惯例非正式地称为COBOL-80)对语言进行了更多更改,从而引起了向后兼容性的争议,并导致了将旧系统转换为新语言的成本。回顾期间,公众的回应是负面的.

  • COBOL-85是对COBOL-80释放反应的最终结果。 ANSI解决了开发人员社区提出的大多数问题,1985年版的转换成本相对较低,同时增加了许多有用的功能,从而提高了程序员的工作效率。.

  • COBOL-2002是1990年代初期开始为语言添加对象导向的工作的最高潮。它还添加了其他数据类型(位,布尔值,浮点数和二进制数),对UNICODE,指针的支持以及其他一些功能。尽管这对COBOL而言是一个巨大的进步,但并没有得到业界的大力支持。没有编写支持整个语言规范的编译器.

  • COBOL-2014添加了一些其他功能。再次遗憾的是,没有编译器支持完整的标准。另外,在COBOL中几乎没有新的开发工作。到2014年,绝大多数COBOL工作都在旧系统上完成.

尽管肯定有很多用COBOL-2002编写的现有代码,甚至在COBOL-2014中编写的代码也很多,但大多数仍在运行的旧版COBOL符合1985规范.

关于语言

COBOL是命令性的和程序性的。 2002规范添加了“对象定向”,但是相对而言,这些附加功能的使用率相对较低。.

该语言具有类似于英语的语法,旨在使其更易于阅读和编写。与大多数其他语言相比,它非常冗长:保留字超过300,并且大多数编程任务在COBOL中比在其他语言中需要更多的代码行.

一个COBOL程序分为四个部分:

  • 标识部门,标识(命名)程序,类或接口

  • 环境部门,定义配置值

  • 数据部门分为六个部分,它使用分层数据结构定义程序的数据模型

  • 程序的核心部分—程序,包含处理数据的程序.

COBOL关键字以全大写形式编写,并且一行代码遵循特定格式.

行宽80列(保留打孔卡天数),其中部分行保留用于特定用途.

例如,前6列要么根本不使用,要么仅用于手动键入行号(编译器将其忽略,即另一种打孔卡保留)。之后:

  • 第7列指示注释(*或/),上一行的继续(-)或调试器代码(d).

  • 第8-11列(称为区域A)包含“部门”,“部分”和“过程”的标题,或用于数据定义的级别编号.

  • 第12-72列(称为区域B)是自由格式的代码空间

  • 历史列73-80留为空白(有关其他打孔卡信息).

这是HELLO WORLD的示例:

识别部门.
程序ID。例子你好.
程序部.
显示 "你好1977!"
停止运行.

(这些严格的间距格式在COBOL-2002中不是必需的,但是仍然可以在很大程度上观察到它们。)

COBOL资源

COBOL已经存在很长时间了,因此有很多学习它的资源。如果您正在处理旧版COBOL项目,请确保您知道它是哪个版本,并且您的参考资料与之匹配。.

线上

讲解

  • 教程点的COBOL教程

  • 大型机360上的COBOL教程

  • 利默里克大学计算机科学与信息系统系的COBOL编程—教程,讲课,练习,示例

  • COBOL编程教程

  • ZingCOBOL:COBOL编程入门指南

  • 那么,您想学习COBOL吗? -来自Millennial Mainframer的教程,而不是“如何以及为什么学习COBOL”文章

  • 读取COBOL布局

  • 来自学术教程的COBOL教程

  • 影片:

    • 编写First COBOL程序,编译和执行,快速视频介绍

    • 带有Cobol的Mainframe Basics,有关COBOL和Mainframe计算的15部分视频系列.

参考

  • ISO / IEC 1989:2014,当前的COBOL标准(收费下载)

  • COBOL快速指南.

工具类

  • GNU COBOL编译器,将COBOL转换为C,然后对其进行编译,旨在与GNU Compiler Collection一起使用

  • zCOBOL,另一个COBOL编译器

  • Hercules System / 370,ESA / 390和z / Architecture Emulator(大型机模拟器)

  • 开源COBOL工具,是GNU许可的COBOL工具的集合.

社区与持续学习

  • MainframeGuruKul的COBOL论坛

  • IBMMainframes.com上的COBOL编程论坛

  • COBOL订阅.

图书

  • 迈克尔·科夫兰(Michael Coughlan)着手编写程序员的COBOL

  • Murach的大型机COBOL,作者Mike Murach

  • Jon Wessler释放的Cobol

  • Sams在24小时内自学COBOL,作者:Thane Hubbell

  • Nancy Stern撰写的《面向21世纪的COBOL》

  • Gary DeWard Brown的用于结构化和面向对象编程的高级COBOL

  • Murach的结构化COBOL,作者Mike Murach

  • Arthur Griffith撰写的COBOL For Dummies,不要错过John W Fronckowiak撰写的COBOL for Dummies快速参考。

  • Cobol的力量作者:Rui Bivar de Oliveira

  • MK Roy的Cobol编程.

我应该学习COBOL吗?

COBOL并不酷,而且十多年来人们一直将其称为垂死的语言。在语言完成之前,甚至还有一个COBOL的墓碑。但是对于所有与COBOL无关的声明,事实是COBOL尚未消亡.

COBOL主要由大型企业使用,大型企业在1960年代,70年代和80年代需要并负担得起大型计算机的公司。那个时代尚未更换的系统过于复杂,以至于无法轻松重建,而且它们的任务至关重要,无法突破.

交通控制,医疗保健监控,保险承销,财务审计和政府记录保存等行业的软件系统继续运行COBOL,并且可能会持续运行一段时间。.

而且,大多数构建和维护这些系统的程序员正在(或远远超过)退休年龄。.

在老的COBOL程序员逐渐淘汰系统的同时,年轻的程序员对老技术也不太感兴趣。传统行业的IT经理担心即将到来的COBOL短缺.

这为对稳定,高薪工作感兴趣的早期职业开发人员提供了巨大的机会.

其他要学习的东西

除极少数情况外,COBOL不用于构建新的应用程序或系统。而是,COBOL用于构建仍然存在的许多大型业务系统.

COBOL程序员很可能会花时间维护旧系统,将COBOL应用程序转换为现代技术,或在COBOL应用程序和其他系统之间建立桥梁.

大部分工作将倾向于在大型主机上进行。与知名公司合作;在金融,医疗保健,政府和运输等成熟行业中.

鉴于这是大多数当代COBOL开发发生的生态系统,程序员需要大量其他技术来使COBOL技能具有相关性和价值.

以下是与COBOL完美搭配的技能的简短列表,并链接到学习资源:

  • 大型机计算

    • 大型机到底是什么?大卫·斯蒂芬斯(David Stephens)

    • 客户信息控制系统(CICS®)

    • Menendez和Lowe的Murach的COBOL程序员CICS

    • Horswill等人设计和编程CICS应用程序

    • 作业控制语言(JCL),在COBOL环境中大量使用的自动化语言

    • Menendez和Lowe的Murach的OS / 390和z / OS JCL

    • System 390作业控制语言,作者:Gary DeWard Brown

    • DB2 for COBOL程序员,第1部分,Garvin和Eckols,以及DB2 for COBOL程序员,第2部分,Garvin和Prince.

  • 较新的企业级技术,例如:

    • .NET和C#

    • 爪哇

    • 阿巴普

  • 其他旧版语言,例如:

    • Fortran

    • Erlang

    • 向前

  • 系统编程语言,例如C,C ++和D.

  • 数据传输技术,尤其是XML和SOAP

  • 实用程序脚本语言,例如Perl和Python

进一步阅读和资源

我们有更多与编码和开发人员资源有关的编程指南,教程和信息图:

  • 汇编语言简介:无论您是直接使用它还是学习它,只是为了了解硬件级别的实际情况,汇编语言都是一件很重要的事情.

  • Bash编程资源:如果您正在编码COBOL,则可能会使用命令行环境。这是您学习最好的机会之一.

  • NXT-G编程资源:好的,这与COBOL无关。但是经过一整天的编码,您会不会喜欢创建乐高机器人?!

您应该学习什么代码?

对应该学习哪种编程语言感到困惑?查看我们的信息图,您应该学习什么代码?

它不仅讨论了语言的不同方面,还回答了一些重要问题,例如:“我将以编程为生赚多少钱?”

您应该学习什么代码?
您应该学习什么代码?

Jeffrey Wilson Administrator
Sorry! The Author has not filled his profile.
follow me
    Like this post? Please share to your friends:
    Adblock
    detector
    map