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

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

Opensource.com

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

虽然 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 代码,但集成开发环境使生活更轻松。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 呢?如果有一个移动编辑器可以帮助我处理缩进规则,那么输入代码将是一件轻而易举的事情。数据结构需求将与 PICTUREs 大相径庭,但我假设 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

格蕾丝·霍珀这样做,再次受到争议。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,但最终继续使用现有系统(诚然进行了更新)所证明的那样,他们都深受其害,既受到成本上升的困扰,也受到设计和编写糟糕的替代品的困扰。

Creative Commons License本作品根据 Creative Commons Attribution-Share Alike 4.0 International License 获得许可。
© . All rights reserved.