无监督程序翻译的领域感知模型
Syntax and Domain Aware Model for Unsupervised Program Translation
摘要:
随着软件的发展和社会的进步,软件迁移越来越受到人们的关注.在不同语言之间手动迁移项目容易出错且成本高昂。近年来,研究人员开始探索使用监督深度学习技术,通过从大规模并行代码语料库中学习来实现自动程序翻译。然而,并行资源在程序设计语言领域中是稀缺的,并且手动收集双语数据是昂贵的。为了解决这个问题,提出了几个无监督的编程翻译系统。但是,这些系统仍然依赖于庞大的单语源代码来进行训练,这是非常昂贵的。此外,这些模型不能很好地翻译在预训练过程中看不到的语言。在本文中,我们提出了SDA-Trans,语法和领域感知的程序翻译模型,它利用语法结构和领域知识,以提高跨语言迁移能力。SDA-Trans在较小规模的语料库上采用无监督训练,包括Python和Java单语程序。Python、Java和C++之间的函数翻译任务的实验结果表明,SDA-Trans的性能优于许多大规模的预训练模型,特别是对于看不见的语言翻译。
英文摘要:
There is growing interest in software migration as the development of software and society. Manually migrating projects between languages is error-prone and expensive. In recent years, researchers have begun to explore automatic program translation using supervised deep learning techniques by learning from large-scale parallel code corpus. However, parallel resources are scarce in the programming language domain, and it is costly to collect bilingual data manually. To address this issue, several unsupervised programming translation systems are proposed. However, these systems still rely on huge monolingual source code to train, which is very expensive. Besides, these models cannot perform well for translating the languages that are not seen during the pre-training procedure. In this paper, we propose SDA-Trans, a syntax and domain-aware model for program translation, which leverages the syntax structure and domain knowledge to enhance the cross-lingual transfer ability. SDA-Trans adopts unsupervised training on a smaller-scale corpus, including Python and Java monolingual programs. The experimental results on function translation tasks between Python, Java, and C++ show that SDA-Trans outperforms many large-scale pre-trained models, especially for unseen language translation.
机构、总结、中文摘要均由AI分析而来,可能存在错误,请以论文正文为准。