Author:
Zhang Xin,Yu Zhiwen,Liu Jiaqi,Wang Hui,Wang Liang,Guo Bin
Abstract
AbstractProgram translation aims to translate one kind of programming language to another, e.g., from Python to Java. Due to the inefficiency of translation rules construction with pure human effort (software engineer) and the low quality of machine translation results with pure machine effort, it is suggested to implement program translation in a human–machine cooperative way. However, existing human–machine program translation methods fail to utilize the human’s ability effectively, which require human to post-edit the results (i.e., statically modified directly on the model generated code). To solve this problem, we propose HMPT (Human-Machine Program Translation), a novel method that achieves program translation based on human–machine cooperation. It can (1) reduce the human effort by introducing a prefix-based interactive protocol that feeds the human’s edit into the model as the prefix and regenerates better output code, and (2) reduce the interactive response time resulted by excessive program length in the regeneration process from two aspects: avoiding duplicate prefix generation with cache attention information, as well as reducing invalid suffix generation by splicing the suffix of the results. The experiments are conducted on two real datasets. Results show compared to the baselines, our method reduces the human effort up to 73.5% at the token level and reduces the response time up to 76.1%.
Funder
National Key Research and Development Program of China
National Natural Science Foundation of China
National Science Fund for Distinguished Young Scholars
Publisher
Springer Science and Business Media LLC
Reference57 articles.
1. Aggarwal, K., Salameh, M., Hindle, A.: Using machine translation for converting python 2 to python 3 code. Technical report, PeerJ PrePrints (2015)
2. Ahmad, W.U., Chakraborty, S., Ray, B., Chang, K.-W.: Summarize and generate to back-translate: unsupervised translation of programming languages (2022). ArXiv preprint arXiv:2205.11116
3. Ahmad, U.W., Chakraborty, S., Ray, B., Chang, K.-W.: Unified pre-training for program understanding and generation. In: Annual conference of the North american chapter of the association for computational linguistics : human language technologies, 2655–2668 (2021)
4. Ahmad, W.U., Tushar, M.G.R., Chakraborty, S., Chang, K.-W.: Avatar: a parallel corpus for java-python program translation (2021). ArXiv preprint arXiv:2108.11590
5. Alabau, V., Sanchis, A., Casacuberta, F.: Improving on-line handwritten recognition in interactive machine translation. Pattern Recognit. 47(3), 1217–1228 (2014)