40年COBOL老程序不兼容新系统怎么办?让AI把它编译成Java

2021 年 3 月 7 日 机器之心
机器之心报道
作者:李泽南

COBOL 程序看不懂,80 岁老程序员又招不到怎么办?IBM 说:让 AI 把它转成 java 语言不就行了。

去年,美国急聘精通上古语言 COBOL 的程序员,以 帮助修复 40 多年历史软件系统 的新闻吸引了人们的眼球。像 COBOL 这样的古老语言,今天已经不为年轻程序员们所知,但又有很多重要代码需要维护,能不能让人工智能来解决这个矛盾呢?


去年,IBM 展示了人工智能可以通过更新遗留代码的方式帮助人们解决繁琐的软件维护工作。现在,这家公司又提出了一种基于 AI 的重新编码方式来应对旧的应用程序,帮助它们在当今的计算平台上运转。

IBM 提出的这个最新工具叫做 Mono2Micro 和 Application Modernization Accelerator(AMA),为应用架构师带来了从旧程序中获取新价值的能力。据 IBM 研究院混合云服务总监 Nick Fuller 介绍,这是让 AI 把 COBOL 写成的程序自动转换为 Java 的第一步。

虽然迈出了一步,但 AI 目前还不能做太多的事,Fuller 解释说,这些最新的人工智能方法还只能将非模块化单片程序的旧机器码分解为独立的微服务。尽管 AMA 工具实际上是为现代化 COBOL 语言而设计的,但是在翻译编程语言时,我们还需再迈出一步,因为在这个节点上,它仅提供现代化过程中的增量步骤。Fuller 表示:「语言翻译是 AI 的一项基本挑战,我们正在努力使其中的一些旧代码以现代软件使用的语言运行。」

Mono2Micro 工具:
https://www.ibm.com/support/pages/node/6398670

与此同时,IBM 最新的 AI 工具提供了一些其他的能力。例如 Mono2Micro 会首先分析旧代码,揭示其中所有的隐藏连接,比如包含大量调用的基础业务逻辑中的多个组件,以及彼此之间的联系。而如果这些工作是让人类工程师来完成的话,则会非常费时费力。

Mono2Micro 界面图。

Mono2Micro 利用 AI 集群技术将相似的代码分组在一起,从而更清晰地展示了代码组之间的交互方式。Mono2Micro 在提取代码后,将静态(在程序运行之前对其进行分析)和动态(在程序运行期间对其进行分析)地对源代码和目标代码进行分析。

之后,该工具将基于 Java 的单片程序及其相关的业务逻辑和用户界面重构为微服务。将单片程序重构为具有特定功能的独立微服务,可以最大程度地减少软件作为单片程序时的连接,还能在不更改外部行为的情况下更改应用程序的结构。

AMA 工具的目的是分析和重构以旧语言(COBOL、PL/I)编写的程序。AMA 工具利用对源代码的静态分析,以及对应用程序结构的理解,能够创建出代表旧应用程序的图。当与深度学习方法结合使用时,这种基于图的方法可以促进数据的保留。

当数据输入是代码,功能是分析时,IBM 的 AI 策略解决了机器学习的关键挑战:数量和多重含义。我们知道,能被遗留下来执行重要任务的应用通常都保有成百上千,甚至数百万行代码。在这种情况下,通过嵌入的概念将机器学习(ML)技术应用于这些代码数据,会使工作变得更加高效。

这些嵌入层代表了一种将数据转换为数值的方法,其强大的能力在于将大量具有多种可能含义的代码映射到数值上,就像翻译人类自然语言的算法使用词嵌入把文字数值化。由于和代码分析有关,这一方法也可以用图的方式解决。

「嵌入层是强大的,没有它们你几乎无法实现任何有效的机器学习系统,」Fuller 说道。

他补充说,在代码分析的情形下,通过复制应用程序的功能,机器学习系统可以更好地把古老的应用程序重构为微服务。不过 Fuller 还是指出:「当机器学习处理之后,我们的工作还没有完成。但就人们希望获得的结果而言,这些工具可以解决大约 70% 的工作,即把重要应用重构为微服务架构。」

参考内容:
https://spectrum.ieee.org/tech-talk/computing/software/ai-legacy-software-analysis-tool

百万级文献分析,十万字深入解读
2020-2021 全球AI技术发展趋势报告

报告内容涵盖人工智能顶会趋势分析、整体技术趋势发展结论、六大细分领域(自然语言处理、计算机视觉、机器人与自动化技术、机器学习、智能基础设施、数据智能技术、前沿智能技术)技术发展趋势数据与问卷结论详解,最后附有六大技术领域5年突破事件、Synced Indicator 完整数据。

识别下方二维码,立即购买报告。

© THE END 

转载请联系本公众号获得授权

投稿或寻求报道:content@jiqizhixin.com

登录查看更多
0

相关内容

【2020新书】Ruby 3 编程: 从小白到专家,598页pdf
专知会员服务
29+阅读 · 2020年12月17日
专知会员服务
35+阅读 · 2020年10月29日
【2020干货书】Python3基础导论介绍,98页pdf
专知会员服务
100+阅读 · 2020年10月11日
【2020新书】高级Python编程,620页pdf
专知会员服务
235+阅读 · 2020年7月31日
82页《现代C++教程》:高速上手C++ 11/14/17/20
专知
20+阅读 · 2020年10月19日
人生苦短,我用 PyCharm
Python开发者
3+阅读 · 2019年9月14日
你真的会正确地调试 TensorFlow 代码吗?
数据库开发
7+阅读 · 2019年3月18日
逆向 | C++ 加壳程序的编写思路
计算机与网络安全
9+阅读 · 2019年1月1日
我的if else代码纯净无暇,一个字也不能简化
机器之心
3+阅读 · 2018年12月28日
Python 杠上 Java、C/C++,赢面有几成?
CSDN
6+阅读 · 2018年4月12日
用于数学的 10 个优秀编程语言
算法与数据结构
13+阅读 · 2018年1月5日
十五条有用的Golang编程经验
CSDN大数据
5+阅读 · 2017年8月7日
Hierarchical Graph Capsule Network
Arxiv
20+阅读 · 2020年12月16日
Arxiv
10+阅读 · 2017年12月29日
VIP会员
相关VIP内容
相关资讯
82页《现代C++教程》:高速上手C++ 11/14/17/20
专知
20+阅读 · 2020年10月19日
人生苦短,我用 PyCharm
Python开发者
3+阅读 · 2019年9月14日
你真的会正确地调试 TensorFlow 代码吗?
数据库开发
7+阅读 · 2019年3月18日
逆向 | C++ 加壳程序的编写思路
计算机与网络安全
9+阅读 · 2019年1月1日
我的if else代码纯净无暇,一个字也不能简化
机器之心
3+阅读 · 2018年12月28日
Python 杠上 Java、C/C++,赢面有几成?
CSDN
6+阅读 · 2018年4月12日
用于数学的 10 个优秀编程语言
算法与数据结构
13+阅读 · 2018年1月5日
十五条有用的Golang编程经验
CSDN大数据
5+阅读 · 2017年8月7日
Top
微信扫码咨询专知VIP会员