Long-Range Modeling of Source Code Files with eWASH: Extended Window Access by Syntax Hierarchy
Colin B. Clement, Shuai Lu, Xiaoyu Liu, Michele Tufano, Dawn Drain, Nan Duan, Neel Sundaresan, Alexey Svyatkovskiy
TL;DR
The paper tackles the limited context window of transformers in large code files by introducing eWASH, a syntax-hierarchy–driven context compression that prioritizes high-level code elements. By applying this extended window approach to Python data with models XGPT-C and XPyMT5, the authors achieve state-of-the-art results in code completion, method completion, and code summarization, while also releasing new CodeXGLUE tasks focused on user experience. The results show that leveraging syntactic structure yields substantial gains, especially at shorter context lengths, and that the approach generalizes beyond code to natural language tasks. Overall, eWASH offers a general, architecture-agnostic method for long-range modeling of structured documents using hierarchy-aware context selection.
Abstract
Statistical language modeling and translation with transformers have found many successful applications in program understanding and generation tasks, setting high benchmarks for tools in modern software development environments. The finite context window of these neural models means, however, that they will be unable to leverage the entire relevant context of large files and packages for any given task. While there are many efforts to extend the context window, we introduce an architecture-independent approach for leveraging the syntactic hierarchies of source code for incorporating entire file-level context into a fixed-length window. Using concrete syntax trees of each source file we extract syntactic hierarchies and integrate them into context window by selectively removing from view more specific, less relevant scopes for a given task. We evaluate this approach on code generation tasks and joint translation of natural language and source code in Python programming language, achieving a new state-of-the-art in code completion and summarization for Python in the CodeXGLUE benchmark. We also introduce new CodeXGLUE benchmarks for user-experience-motivated tasks: code completion with normalized literals, method body completion/code summarization conditioned on file-level context.
