We present a novel fully unsupervised method for the automatic summarization of source code text. On large projects, developers spend much of their time reading and browsing code, raising new opportunities for summarization methods. Indeed, modern code editors contain a feature called code folding, which allows one to selectively hide blocks of code. But this feature is cumbersome because currently folding decisions must be done manually. We introduce the autofolding problem, which is to automatically create a code summary by folding non-essential code blocks. We present a novel solution to the autofolding problem by formulating it as a subtree optimization problem and making use of a comprehensive source code content model. On a set of popular open source projects from GitHub, we show that our formulation significantly outperforms simpler baselines at meeting human judgements, yielding an 84% accuracy and a 43% error reduction. More broadly, we hope that this work will aid program comprehension by turning code folding into a usable and valuable tool.
Auto folding REF ] is another tool to aid program comprehension.
Autofolding for Source Code Summarization
ArXiv
ArXiv
Computer Science