Litcius/Paper detail

Non-Autoregressive Line-Level Code Completion

Fang Liu, Zhiyi Fu, Ge Li, Zhi Jin, Hui Liu, Yiyang Hao, Li Zhang

2024ACM Transactions on Software Engineering and Methodology21 citationsDOIOpen Access PDF

Abstract

Software developers frequently use code completion tools to accelerate software development by suggesting the following code elements. Researchers usually employ AutoRegressive (AR) decoders to complete code sequences in a left-to-right, token-by-token fashion. To improve the accuracy and efficiency of code completion, we argue that tokens within a code statement have the potential to be predicted concurrently. In this article, we first conduct an empirical study to analyze the dependency among the target tokens in line-level code completion. The results suggest that it is potentially practical to generate all statement tokens in parallel. To this end, we introduce SANAR, a simple and effective syntax-aware non-autoregressive model for line-level code completion. To further improve the quality of the generated code, we propose an adaptive and syntax-aware sampling strategy to boost the model’s performance. The experimental results obtained from two widely used datasets indicate that our model outperforms state-of-the-art code completion approaches of similar model size by a considerable margin, and is faster than these models with up to 9× speed-up. Moreover, the extensive results additionally demonstrate that the enhancements achieved by SANAR become even more pronounced with larger model sizes, highlighting their significance.

Topics & Concepts

Computer scienceAutoregressive modelCode (set theory)Completion (oil and gas wells)Programming languageStatisticsMathematicsSet (abstract data type)Petroleum engineeringEngineeringNetwork Packet Processing and OptimizationAlgorithms and Data CompressionSoftware Testing and Debugging Techniques
Non-Autoregressive Line-Level Code Completion | Litcius