有方法和工具可以把 Java 代码转换为 C++ 或 Qt。其中,Facebook 提出的 TransCoder 是一种 AI,能在 C++、Java、Python 语言之间互译,通过无监督学习,无需大量成对、标记的编程代码数据集。TransCoder 充分利用编程语言的特点,如关键词和数学运算符。它利用编程语言关键字的嵌入,显示了在相似上下文中,不同语言关键字在嵌入空间中的接近性。例如,Python 中的 except 和 Java、C++ 中的 catch 都用于异常处理,显示相似的嵌入空间位置。映射的实现如 map 和 dict,字符串转换字符数组的方法如 c_str 和 toCharArray,以及变量类型如 long、int 和 Integer,都显示了相似的现象。实现无监督编程语言机器翻译的三个原则由 Facebook 提出,首先,通过跨语言掩码语言模型(MLM)预处理来初始化模型,这类似于自然语言的填空题,结果是表达相同指令的代码片段被映射到与编程语言无关的相同表示。以下是一个从 Python 翻译到 C++ 的实例:TransCoder 推断变量和函数返回值的类型,将 Python 的 deque() 容器映射到 C++ 类似的实现 deque<>,并使用 C++ 的 front、back、pop_back 和 push_back 方法来检索和插入 deque 中的元素,而不是使用 Python 方括号、pop 和 append 方法。