Learning Program Component Order
This addresses the need for better code maintenance and programmer productivity by automating style adherence, though it is incremental as it builds on existing style guideline concepts.
The paper tackles the problem of automatically learning ordering conventions for program components from sample code, enabling programming environments to suggest proper insertion locations or reorder files, and it is evaluated by testing against known style guidelines and correct component insertion.
Successful programs are written to be maintained. One aspect to this is that programmers order the components in the code files in a particular way. This is part of programming style. While the conventions for ordering are sometimes given as part of a style guideline, such guidelines are often incomplete and programmers tend to have their own more comprehensive orderings in mind. This paper defines a model for ordering program components and shows how this model can be learned from sample code. Such a model is a useful tool for a programming environment in that it can be used to find the proper location for inserting new components or for reordering files to better meet the needs of the programmer. The model is designed so that it can be fine- tuned by the programmer. The learning framework is evaluated both by looking at code with known style guidelines and by testing whether it inserts existing components into a file correctly.