In this paper, we leverage low-level compiler intermediate representations (IR) to improve code translation. Traditional transpilers rely on syntactic information and handcrafted rules, which limits their applicability and produces unnatural-looking code. Applying neural machine translation (NMT) approaches to code has successfully broadened the set of programs on which one can get a natural-looking translation. However, they treat the code as sequences of text tokens, and still do not differentiate well enough between similar pieces of code which have different semantics in different languages. The consequence is low quality translation, reducing the practicality of NMT, and stressing the need for an approach significantly increasing its accuracy. Here we propose to augment code translation with IRs, specifically LLVM IR, with results on the C++, Java, Rust, and Go languages. Our method improves upon the state of the art for unsupervised code translation, increasing the number of correct translations by 11% on average, and up to 79% for the Java -> Rust pair with greedy decoding. With beam search, it increases the number of correct translations by 5.5% in average. We extend previous test sets for code translation, by adding hundreds of Go and Rust functions. Additionally, we train models with high performance on the problem of IR decompilation, generating programming source code from IR, and study using IRs as intermediary pivot for translation.


翻译:本文利用底层编译器中间表示(IR)来改进代码翻译。传统转译器依赖语法信息和手工规则,这限制了其适用性并产生不自然的代码。将神经机器翻译(NMT)方法应用于代码,已成功拓宽了可获得自然翻译的程序集范围。然而,这些方法将代码视为文本标记序列,仍未能充分区分在不同语言中具有不同语义的相似代码片段。其后果是翻译质量低下,降低了NMT的实用性,并凸显了对能显著提升其准确性的方法的迫切需求。为此,我们提出用IR(特别是LLVM IR)增强代码翻译,并在C++、Java、Rust和Go语言上进行了实验。我们的方法改进了无监督代码翻译的现有技术水平,平均正确翻译数量增加了11%,其中在Java→Rust语言对中采用贪心解码时提升高达79%。使用束搜索时,正确翻译数量平均增加5.5%。我们通过添加数百个Go和Rust函数,扩展了现有的代码翻译测试集。此外,我们训练了在IR反编译问题上具有高性能的模型,从IR生成编程源代码,并研究了将IR用作翻译的中介枢轴。

0
下载
关闭预览

相关内容

信息检索杂志(IR)为信息检索的广泛领域中的理论、算法分析和实验的发布提供了一个国际论坛。感兴趣的主题包括对应用程序(例如Web,社交和流媒体,推荐系统和文本档案)的搜索、索引、分析和评估。这包括对搜索中人为因素的研究、桥接人工智能和信息检索以及特定领域的搜索应用程序。 官网地址:https://dblp.uni-trier.de/db/journals/ir/
专知会员服务
61+阅读 · 2020年3月19日
【哈佛大学商学院课程Fall 2019】机器学习可解释性
专知会员服务
105+阅读 · 2019年10月9日
RoBERTa中文预训练模型:RoBERTa for Chinese
PaperWeekly
57+阅读 · 2019年9月16日
Hierarchically Structured Meta-learning
CreateAMind
27+阅读 · 2019年5月22日
disentangled-representation-papers
CreateAMind
26+阅读 · 2018年9月12日
Capsule Networks解析
机器学习研究会
11+阅读 · 2017年11月12日
【论文】图上的表示学习综述
机器学习研究会
15+阅读 · 2017年9月24日
国家自然科学基金
1+阅读 · 2014年12月31日
国家自然科学基金
0+阅读 · 2014年12月31日
国家自然科学基金
0+阅读 · 2013年12月31日
国家自然科学基金
0+阅读 · 2012年12月31日
国家自然科学基金
1+阅读 · 2012年12月31日
国家自然科学基金
0+阅读 · 2012年12月31日
国家自然科学基金
0+阅读 · 2011年12月31日
国家自然科学基金
0+阅读 · 2011年12月31日
国家自然科学基金
5+阅读 · 2011年12月31日
国家自然科学基金
2+阅读 · 2010年12月31日
Arxiv
19+阅读 · 2020年7月21日
Arxiv
19+阅读 · 2019年4月5日
Arxiv
27+阅读 · 2018年4月12日
VIP会员
最新内容
综述 | 世界动作模型:少做梦,多行动
专知会员服务
4+阅读 · 6月23日
美以伊冲突:无人机与人工智能的运用
专知会员服务
7+阅读 · 6月23日
《特种部队在透明战场中的生存力》最新报告
专知会员服务
4+阅读 · 6月23日
综述 | 3D场景图:开放挑战与未来方向
专知会员服务
8+阅读 · 6月22日
21世纪的无人机战争
专知会员服务
4+阅读 · 6月22日
《量子技术的军事任务技术适配与利用》
专知会员服务
5+阅读 · 6月22日
相关基金
国家自然科学基金
1+阅读 · 2014年12月31日
国家自然科学基金
0+阅读 · 2014年12月31日
国家自然科学基金
0+阅读 · 2013年12月31日
国家自然科学基金
0+阅读 · 2012年12月31日
国家自然科学基金
1+阅读 · 2012年12月31日
国家自然科学基金
0+阅读 · 2012年12月31日
国家自然科学基金
0+阅读 · 2011年12月31日
国家自然科学基金
0+阅读 · 2011年12月31日
国家自然科学基金
5+阅读 · 2011年12月31日
国家自然科学基金
2+阅读 · 2010年12月31日
Top
微信扫码咨询专知VIP会员