现代 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 常见问题解答非常详尽,提供了大量关于使用 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 的 “母亲” 是不正确的,这暗示了她发明了 COBOL。感谢您的反馈。

回复 作者 Tod Conover (未验证)

我认为 COBOL 真正的祖母应该是 Jean Sammet 和 Gertrude Tierney。但这只是一个吹毛求疵的细节。

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

我做了 24 年的 COBOL,直到大约 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,但最终继续使用现有(当然会进行更新)的站点数量可以证明的那样,这些站点都受到了很大的打击,既有不断上涨的成本,也有设计和编写都很差的替代品)。

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