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

还没有读者喜欢这个。
COBOL programming language

Opensource.com

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

虽然 Hopper 对计算机技术的贡献被人们铭记、赞扬和后人在此基础上继续发展,但 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 代码,但集成开发环境 (IDE) 可以让生活更轻松。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 (未验证)

Grace Hopper 没有发明 COBOL 或为其编写第一个编译器;然而,她在其采用方面至关重要,并且经常被不准确地赞扬,就像这里的情况一样。

如果这句话让人困惑,我深感抱歉。Grace Hopper 为任何计算机编程语言开发了第一个编译器,但不是,它不是 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

Grace Hopper 做这件事,再次存在争议。1952 年,Grace Hopper(来自美国)编写了编译器,1952 年,Alick Glennie(来自英国)也编写了编译器。有些人过去认为 Hopper 是真正的声称者,有些人过去认为 Alick Glennie 是第一个编译器编写者。

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

==> 实际上,作为真正的 IT 人员/计算机极客/真理寻求者,我们应该说 Grace Hopper 和 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,但最终还是继续使用现有系统(当然,也进行了更新),因为它们受到了很大的打击,既包括不断上涨的成本,也包括设计和编写不佳的替代品)。

© . All rights reserved.