COBOL(通用面向业务的语言)是最古老的编程语言之一,其历史可以追溯到1959 年左右。但它的寿命之长令人惊讶;根据2022 年的一项调查,生产系统中使用的COBOL 线路超过8000 亿条,高于2017 年估计的2200 亿条。
然而,COBOL 因其笨拙和低效而臭名昭著。为什么不迁移到更新的语言?这是因为,对于大型企业来说,由于全球COBOL 专家数量较少,这往往是一个复杂且成本高昂的提议。澳大利亚联邦银行于2012 年更换其核心COBOL 平台时,花了五年时间,耗资超过7 亿澳元。
为了为COBOL 应用程序现代化问题提供新的解决方案,IBM 今天发布了Code Assistant for IBM Z,它使用代码生成人工智能模型将COBOL 代码转换为Java。 IBM Z 的Code Assistant 将于2023 年第四季度全面上市,并将于今年9 月初在拉斯维加斯举行的IBM TechXchange 会议上预览。
IBM Research 首席科学家Ruchir Puri 表示,IBM Z 的Code Assistant 旨在帮助企业重构其大型机应用程序,最好同时保持性能和安全性。 Code Assistant 作为托管服务在本地或云中运行,由CodeNet 提供支持,CodeNet 是一种代码生成模型,不仅可以理解COBOL 和Java,还可以理解大约80 种不同的编程语言。
“IBM 构建了一种新的、最先进的AI 代码生成模型,可以将传统的COBOL 程序转换为企业级Java,生成高度自然的代码,”Puri 在电子邮件采访中表示。除了代码转换之外,代码助手还支持完整的应用程序现代化生命周期,帮助开发人员理解、重构、转换和验证现代架构中的翻译代码。 '
CodeNet 接受了1.5 万亿个令牌的训练,拥有200 亿个参数,并设计了一个大型上下文窗口(32,000 个令牌)来“捕获更广泛的上下文”,从而实现“更高效的COBOL 到Java 的转换”。参数是模型从历史训练数据中学到的内容,本质上定义了模型处理问题(例如生成文本)的技能,而“标记”代表原始文本(例如,“fan”、“tas”代表单词“太棒了”和“抽搐”)。至于上下文窗口,它是指模型在生成附加文本之前考虑的文本。
如今,有许多工具、应用程序和服务可以将COBOL 应用程序转换为Java 语法,其中一些是完全自动化的。 Puri 承认这一点,但认为Code Assistant 与市场上的一些竞争产品不同,它会采取措施避免牺牲COBOL 功能,同时降低成本并生成易于维护的代码。
“IBM 针对IBM Z 大型机的代码助手可以混合搭配COBOL 和Java 服务,”Puri 说。如果系统的“理解”和“重构”功能表明应用程序中的某个子服务需要保留在COBOL 中,那么它将保持不变,而其他子服务将转换为Java。 '
这并不是说Code Assistant 是完美无缺的。斯坦福大学最近的一项研究发现,使用类似代码生成人工智能系统的软件工程师更有可能在他们开发的应用程序中造成漏洞。事实上,普里警告不要部署由代码助理生成的代码,直到它经过人类专家的审查。
“与任何人工智能系统一样,企业的COBOL 应用程序中可能存在IBM Z-Code Assistant 可能尚未掌握的独特使用模式,”Puri 说。必须使用最先进的漏洞扫描器对代码进行扫描,以确保代码的安全性。 '
撇开风险不谈,IBM 无疑认为代码助手等工具对其未来非常重要。目前,大约84% 的IBM 大型机客户运行COBOL,其中大部分来自金融和政府部门。尽管IBM 的大型机部门仍占其整体业务的很大一部分,但该公司将大型机视为通向其托管和促进的庞大且盈利的混合计算环境的桥梁。
IBM 还看到了更广泛的代码生成人工智能工具的前景,旨在与GitHub Copilot 和亚马逊的CodeWhisperer 等应用程序竞争。今年5 月,IBM 在其Watsonx AI 服务中推出了fm.model.code,该服务为Watson Code Assistant 提供支持,允许在程序中使用简单的英语提示生成代码。
版权声明
本文由注册用户自发上传,如有侵权,联系1626085909@qq.com 进行删除