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

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

Opensource.com

作为早期计算机历史的标志性人物,格蕾丝·霍珀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,但集成开发环境 (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…

我的理由是,我在我的 Android 手机上使用 Swype 进行输入。这样做时,我发现英语单词(至少是 Android 惊人的 G 级拼写词典中的单词)是我可以流畅地完成的事情,而标点符号和数字是主要的障碍,这使得在台式机上进行博客评论不那么乏味。在手机上用 Java(Android 应用程序的通用语言)编写代码,代码将在手机上运行,这是我甚至无法开始尝试的事情。但是 COBOL 呢?如果有一个移动编辑器可以帮助我处理缩进规则,那么输入代码将是一件轻而易举的事情。数据结构的需求将与 PICTURE 大相径庭,但我假设 COBOL 肯定已经发展出某种面向对象或事件驱动之类的东西。我认为,主要由英语单词组成的语言语法将是使智能手机成为通用计算世界中完全公民的理想选择,也是开源社区可能从逻辑上感兴趣的东西。我应该发起 “kickstarter” 或其他活动吗?

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

另外,我帮你修复了链接。

回复 的评论,作者:LoriZ (未验证)

格蕾丝·霍珀并没有发明 COBOL 或为其编写第一个编译器;然而,她在 COBOL 的采用中至关重要,并且经常获得不准确的赞誉,就像这里的情况一样。

对于这句话造成的困惑,我深感抱歉。格蕾丝·霍珀为任何计算机编程语言开发了第一个编译器,但不是 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 的站点所证明的那样,但最终还是继续使用现有系统(当然进行了更新),并且深受其害,既受到了不断上涨的成本的困扰,也受到了设计和编写糟糕的替代品的困扰。

© . All rights reserved.