然而,尽管许多组织尚依赖 COBOL,但 COBOL 开发人员的数量仍在持续减少。更令人担忧的是,当现有的 COBOL 开发人员退休和转移时,有关如何构建和构建 COBOL 应用程序的实际知识也可能会逐渐丢失。为了应对这一挑战,初创公司 Phase Change Software 正在开发的一种名为 COBOL Colleague 的新型 AI 驱动工具。
Phase Change Software 总裁 Steve Brothers 称,COBOL 不会很快消失;并向外媒 VentureBeat 表示,COBOL 开发人员的欠缺并不是最根本的问题。“真正的潜在问题是了解应用程序的功能,因为要有效地修改代码,你需要了解代码的功能”。他补充称,仅仅拥有修改代码的能力是不够的,还需要的是关于代码的知识;相关代码知识的缺失是许多编程语言中都存在的一个问题,但对于已经 60 多岁的 COBOL 来说尤其严重。
Phase Change COBOL Colleague 软件采用了 COBOL 源代码,并使用符号机器学习和静态分析技术将代码转换为因果模型。然后,该模型可以帮助组织理解和维护代码。COBOL Colleague 最初可用于在 Linux 上运行的 on-premises 环境中部署。
值得一提的是,当下市场中声称使用 AI 来帮助开发人员提高效率的开发工具不在少数,其中就包括近期热度颇高的 GitHub Copilot service。对此,Brothers 则表示,他们正在构建的工具与 GitHub Copilot 非常不同。Copilot 旨在帮助开发人员编写代码,但它并不能帮助开发人员在编写代码后对其进行维护。“我们从事的是改变代码的业务,而不是创建代码的业务,这是最大的不同之一”。
Phase Change Software 没有为他们这一 AI 工具采用典型的机器学习方法,即需要在数据集上进行训练。原因在于,当涉及到源代码时,想要获得足够大的源代码存储库以便能够进行训练并不容易。
另一个挑战是路径爆炸。在代码开发中,一个操作可以通过使用不同的 “else” 函数沿着任意数量的不同路径进行。使用 “else” 函数,操作可以根据不同的变量或条件而改变。而对于训练数据路径爆炸的可能性,Brothers 指出,排列后的数量就是一个天文数字,因此对于典型的机器学习训练模型来说是不可行的。
“我们用围绕符号机器学习的人工智能技术解决了这个问题,所以没有训练数据集;我们工具的唯一输入是源代码”。符号人工智能(Symbolic AI)就是以一种更接近人类如何以因果方式推理世界的方法来学习。Brothers 解释道,代码中的行为是因果关系,有输入和输出。
虽然 COBOL 是 Phase Change 的第一个目标,但该公司表示,计划以后将继续扩展以支持其他编程语言。“软件开发人员花费 80% 的时间试图找出他们需要在代码中进行修改的位置。无论是哪种编程语言如何,执行此操作的步骤都是相同的,这就是我们正在实现的自动化。”
本文转自OSCHINA
本文标题:用 AI 帮助记录 COBOL 代码,防止相关知识丢失
本文地址:https://www.oschina.net/news/209014/ai-cobol-code