3 个用于现代 COBOL 开发的开源项目

尚无读者喜欢这篇文章。
COBOL programming language

Opensource.com

葛丽丝·霍普(Grace Hopper)是计算机早期历史的标志性人物,她是 COBOL 编程语言 的祖母。在她众多的成就中,她发明了第一个编译器,并帮助推广了与机器无关的编程语言。今天,她的遗产以多种方式延续下来,包括 葛丽丝·霍普女性计算机大会

虽然霍普对计算机科学的贡献被人们铭记、赞扬并被她的继任者所继承,但 COBOL 本身却经常被贬为早期计算机时代的遗物。在某种程度上,这是事实。今天编写的大部分 COBOL 代码都是为了维护遗留代码,而不是启动新项目。然而,该语言仍在不断更新,COBOL 2014 是该语言最新的标准,并且仍然有很多机会可以 申请需要 COBOL 经验的工作

值得庆幸的是,在现代使用 COBOL 不需要追踪遗留硬件。有几种工具可用于在现代计算机上使用 COBOL,就像使用其他编程语言一样简单。下面,我将介绍三个开源项目,它们可以帮助您在 Mac、Linux 或 Windows 计算机上编写、编译和使用 COBOL 代码。因此,拿起一本关于 COBOL 编程的书(如果您需要一本,Michael Coughlan 的 Beginning COBOL for Programmers 是一个极好的选择),开始探索 COBOL 的世界吧。无需穿孔卡片。

GnuCOBOL

GnuCOBOL(以前称为 OpenCOBOL)是一个现代的开源 COBOL 编译器。它的工作原理是将 COBOL 代码翻译成 C 代码,并使用 GCC 编译代码。虽然该项目没有声明符合标准,但它通过了美国国家标准与技术研究院 COBOL 85 测试套件中的大部分测试。其他编译器可能更符合标准,或者包含与其历史前辈相同的怪癖,但 GnuCOBOL 是我下面介绍的另外两个项目使用的编译器。

在 Fedora 上安装 GnuCOBOL

sudo dnf install open-cobol

在大多数其他 Linux 发行版和其他 UNIX 风格的系统上安装同样简单。对于基于 Debian 的发行版,只需将“dnf”替换为“apt-get”即可。Mac 用户可以使用 homebrew 安装 GnuCOBOL。在 Windows 上安装稍微复杂一些,但是 提供了说明,供那些有兴趣在 Windows 上尝试 GnuCOBOL 的人参考。

要将文件名为“PROGRAM.cob”的源代码编译为可执行文件,请运行

cobc -x PROGRAM.cob

还有许多其他编译选项,运行“cobc -h”时会列出这些选项。GnuCOBOL FAQ 非常全面,并提供了大量关于使用 GnuCOBOL 的信息。

OpenCobolIDE

您可以使用您选择的文本编辑器编写 COBOL 代码,但集成开发环境使生活更轻松。OpenCobolIDE 是一个专门为使用 COBOL 而设计的 IDE。它提供代码完成、代码折叠、语法高亮和一个导航树,所有这些都有助于使用 COBOL 代码。它还具有各种颜色方案,包括浅色和深色,因此大多数用户应该能够找到他们使用起来舒适的主题。

OpenCobolIDE 是一个设计精良的程序,使用起来非常棒。如上所述,它是一个非常专业的 IDE,仅适用于一种编程语言,但它对该语言的处理非常好。界面很简单,应该不需要花费太多精力就可以习惯,但如果用户需要帮助,OpenCobolIDE 文档 提供了 IDE 的良好概述。

OpenCobolIDE

要在 Fedora 上安装 OpenCobolIDE,您需要先安装一些先决条件。通过运行以下命令安装它们

sudo dnf install open-cobol python3-qt5

然后通过运行以下命令安装 OpenCobolIDE

sudo pip3 install OpenCobolIDE

其他发行版的安装类似(只需将“dnf”替换为相应的命令,并安装您的发行版等效的 open-cobol 和 python3-qt5 软件包)。一些发行版在其存储库中提供了 OpenCobolIDE 软件包,因此请检查是否可以通过“pip”安装之前查看它是否可用。Windows 和 Mac 用户可以下载 OpenCobolIDE 安装程序 并使用它们,而不是使用“pip”。

Node.js 的 COBOL 桥接器

也许您想将一些 COBOL 代码与更现代的开发技术结合起来?如果是这种情况,您很幸运。Node.js 的 COBOL 桥接器 允许您在 Node.js 项目中使用 COBOL 代码。

Node-cobol 需要 GnuCOBOL,因此请使用上面的说明安装它,然后运行

npm install cobol

根据开发者的说法,该项目已准备好投入生产,但老实说,它太奇怪了,不太可能实际投入生产(或永远不会投入生产)。也许一些有进取心的读者会想出 Node-cobol 的实际用途,并与我们分享他们的项目故事?

标签

13 条评论

这是一篇非常公正的文章,介绍了 COBOL 开源倡议。谢谢。

几年前,我在 HalfBakery(一个集思广益/想法/发明网站)上发布了一个关于创建类似于 COBOL 的移动计算语言的想法,特别是为了在实际的手机上进行实际编码。该帖子位于 http://www.halfbakery.com/idea/COBOL-like_20programming_20language_20fo…

我的理由是我使用 Swype 在我的 Android 手机上打字。这样做时,我发现英语中的单词(至少是 Android 拼写词典中那些非常 G 级的单词)我可以流畅地完成,而标点符号和数字是主要的障碍,这使得在桌面上评论博客不那么乏味。在手机上用 Java(Android 应用程序的通用语言)编码代码将在其上运行,这是我甚至无法开始考虑尝试的事情。但是 COBOL 呢?考虑到移动编辑器可以帮助我处理缩进规则,输入代码将变得轻而易举。数据结构需求将与 PICTURE 截然不同,但我假设 COBOL 必须已经发展出某种面向对象或事件驱动或其他类似的东西。我认为,主要由英语单词组成的语言语法将是使智能手机成为通用计算世界中的完全公民,以及开源社区可能合乎逻辑地感兴趣的东西的合适选择。我应该发起“kickstarter”或其他什么吗?

我认为这是一个绝妙的主意。我不明白如果手机不能由用户编程,它们有什么用处,而且和您一样,我也无法想象尝试用标点符号繁重的语言在手机上编码。我希望看到这个想法实现。

另外,我为您修复了链接。

回复 作者 LoriZ (未验证)

葛丽丝·霍普并没有发明 COBOL 或为其编写第一个编译器;然而,她在它的采用中至关重要,并且经常被不准确地赞扬,就像这里的情况一样。

如果这句话令人困惑,我深感抱歉。葛丽丝·霍普为任何计算机编程语言开发了第一个编译器,但不是,它不是 COBOL 编译器。因此,我说她是 COBOL 的“祖母”,因为她对直接开发该语言的人产生了巨大的影响。说她是 COBOL 的“母亲”是不正确的,这意味着她发明了它。感谢您的反馈。

回复 作者 Tod Conover (未验证)

我相信 COBOL 的真正祖母应该是 Jean Sammet 和 Gertrude Tierney。然而,这是一个吹毛求疵的细节。

虽然现代开源 COBOL 的想法很棒,但可能为时已晚 15 年。在 Y2K 之后,COBOL 的衰落仍在继续。我预计这种轨迹永远不会改变。

我从事 COBOL 工作 24 年,直到大约 18 个月前我成功转型为 .NET 开发。最近,我转型为数据管理,担任 SQL Server 数据仓库 DBA。除非有人给我提供一份非常赚钱的 COBOL 工作,否则我预计永远不会再回去从事合同工或长期工。COBOL 的末日即将来临,但一种语言的消亡会在多年内缓慢发生。旧的编程语言永远不会消亡。它们只是逐渐消失。

为了反常的娱乐,我有时会在 Stackoverflow 上回答 COBOL 问题。是的,确实如此,人们真的会在 SO 上提出 COBOL 问题。我已经做了足够长的时间,我甚至不需要编译器来检查我的代码,这本身就很可怕。

虽然 COBOL 复兴的想法很美好,但这根本不会发生。

回复 作者 holmja

DoctorKennyG,感谢您的评论。很高兴听到有相当 COBOL 工作经验的人的意见。作为一个只在课堂上和作为业余爱好者使用过 COBOL 的人,我非常感谢您的见解。您说得对,Jean Sammet 和 Gertrude Tierney 为 COBOL 的创建做出了巨大贡献,但在家庭树类比中,我会将她们归类为父母,而不是祖父母。

回复 作者 DoctorKennyG

我是一名 COBOL 程序员,工作了几年(1989/1995 年),我很喜欢这份工作。

我最近发现一个网站提供在线开发服务器(虚拟),我安装了 OpenCobol

参见:www.koding.com

回复 作者 DoctorKennyG

葛丽丝·霍普这样做 - 再次存在争议。1952 年,葛丽丝·霍普(来自美国)编写了编译器,1952 年,Alick Glennie(来自英国)也编写了编译器。有些人过去常常将霍普作为真正的声称者,有些人过去常常将 Alick Glennie 作为第一个编译器编写者。

现在美国输出了盲目的女权主义,女权主义的政治正确性接管了世界,并且在没有进一步辩论历史性和优点的情况下;他们宣布葛丽丝·霍普是第一个编译器编写者,只是因为他们需要一个极客女权主义的象征。没有进一步的讨论发生,现在随着政治正确性,没有人愿意深入挖掘谁是“第一个编译器编写者?”称号的正确所有者 - 不论其性别和国籍。辩论被关闭了,没有提供任何真正的论据。

==> 实际上,作为真正的 IT 人员/计算机极客/真理寻求者,我们应该说葛丽丝·霍普和 Alick Glennie 在 1952 年都独立实现了第一个编译器。他们中谁先完成的,仍然需要进一步调查和确定。

回复 作者 holmja

今年开始的另一个开源 COBOL 项目示例:TypeCobol (https://github.com/TypeCobolTeam/TypeCobol)。
它的目标是成为一个增量编译器,能够被任何 IDE 用于实时错误检测(目前有 Eclipse/RDz 或 VisualStudio 的基本实现)。

目前尚未完全准备好投入生产,但正在积极开发中。 :)

wiztigers,感谢分享。TypeCobol 看起来像一个很棒的项目。我希望它在未来发展成为一个可靠的、可用于生产的产品。

回复 作者 wiztigers (未验证)

我在这样一家公司工作。很多老员工仍然在编写 COBOL。看到他们用 Java 编写的代码真是一种享受。帮助他们理解 OOP 是很有趣的,当您看到他们掌握一个概念并且有点颠覆他们的思维时。

从过去 5 - 10 年我获得的工作量来看,尽管“退休”了,但 Cobol 仍然活跃且良好。

这适用于 m/f(大型机)以及 PC/服务器上的工作,其中大部分使用 Gnu Cobol。

在很长一段时间内,仍然需要 Cobol 编程人员 - 为什么?嗯,古老的谚语似乎仍然适用 - 如果它没有坏,就不要修理它。

正如许多站点所证明的那样,这些站点已被建议从 Cobol 和大型机套件迁移到 PC/服务器到语言 x,但最终继续使用现有(当然是经过更新的)系统,因为它们受到了很大的打击,包括不断上涨的成本以及设计和编写糟糕的替代品)。

知识共享许可协议本作品根据知识共享署名-相同方式共享 4.0 国际许可协议获得许可。
© . All rights reserved.