在数字化时代,随着技术的不断更新,老旧的编程语言如何与现代需求相结合一直是一个挑战。COBOL(通用商业定向语言)作为一种最早的编程语言之一,诞生于1959年左右。尽管年代久远,COBOL却具有惊人的持久力:根据2022年的一项调查,生产系统中正在使用的COBOL代码行数超过了8000亿行,远超2017年的估计2200亿行。
然而,COBOL也以难以驾驭和效率低下而闻名。为什么不迁移到更新的语言?对于大型机构来说,这往往是一个复杂且昂贵的提案,因为全球范围内懂COBOL的专家数量有限。例如,澳大利亚联邦银行在2012年替换其核心COBOL平台时,花费了五年时间,成本超过7亿美元。
为了解决现代化COBOL应用的问题,IBM在今天推出了Code Assistant for IBM Z,该解决方案采用了一个基于AI的代码生成模型,将COBOL代码翻译成Java。预计在2023年第四季度正式推出,Code Assistant for IBM Z将在九月初的拉斯维加斯IBM TechXchange会议上进行预览。
Code Assistant for IBM Z旨在协助企业对其主机应用进行重构,同时最大程度地保留性能和安全性,IBM研究首席科学家Ruchir Puri表示。Code Assistant可以在本地配置或作为托管服务在云中运行,它由一个名为CodeNet的代码生成模型驱动,该模型不仅可以理解COBOL和Java,还可以理解大约80种不同的编程语言。
Puri在一封电子邮件采访中表示:“IBM构建了一个全新的、先进的生成式AI代码模型,以高度的自然度将传统的COBOL程序转换为企业级Java代码。除了代码转换外,Code Assistant还支持完整的应用现代化生命周期,并帮助开发人员在现代架构中理解、重构、转换和验证翻译后的代码。”
Puri表示,CodeNet是经过训练的,具有1.5万亿个标记和200亿个参数,其中参数是从历史训练数据中学习的模型的一部分,实际上定义了模型在解决问题上的技能,比如生成文本,而“标记”表示原始文本(例如单词“fantastic”的“fan”、“tas”和“tic”)。至于上下文窗口,它是模型在生成附加文本之前考虑的文本。
今天有许多工具、应用和服务可以将COBOL应用转换为Java语法,其中一些完全是自动化的。Puri承认了这一点,但他指出,Code Assistant采取了一些措施,以避免牺牲COBOL的功能,同时在降低成本和生成易于维护的代码方面表现出色,与市场上的一些竞争对手不同。
Puri说:“IBM为IBM Z构建了Code Assistant,可以混合使用COBOL和Java服务。如果系统的“了解”和“重构”能力建议应用程序的某个子服务需要保留在COBOL中,那么它将保持这种方式,其他子服务将被转换成Java。”
这并不是说Code Assistant是完美无缺的。一项最近的斯坦福大学研究发现,使用类似Code Assistant的代码生成AI系统的软件工程师更有可能在开发的应用程序中引入漏洞。实际上,Puri在没有经过人类专家审查之前不建议部署Code Assistant生成的代码。
Puri表示:“与任何AI系统一样,企业的COBOL应用可能具有Code Assistant for IBM Z尚未掌握的独特用法模式。因此,必须使用最先进的漏洞扫描工具扫描代码,以确保代码的安全性。”
尽管存在风险,毫无疑问,IBM认为像Code Assistant这样的工具对其未来的增长非常重要。如今,约84%的IBM主机客户在运行COBOL,其中大多数客户来自金融和政府领域。虽然IBM的主机部门仍占其整体业务的很大一部分,但该公司将主机视为连接其广泛、利润丰厚的混合计算环境的桥梁。
IBM还计划在更广泛的代码生成AI工具领域发挥作用,与GitHub Copilot和Amazon CodeWhisperer等应用竞争。今年5月,IBM在其Watsonx AI服务中推出了fm.model.code,为Watson Code Assistant提供支持,使开发人员可以跨程序使用普通英语提示生成代码,包括Red Hat的Ansible Lightspeed等。
https://techcrunch.com/2023/08/22/ibm-taps-ai-to-translate-cobol-code-to-java/
文章来自ChatGPT3.5