API Code Recommendation using Statistical Learning from Fine-Grained Changes
來自專欄 API推薦及代碼補全
本次分享的文章是2016年軟工頂級會議FSE的一篇論文。In summary, 技術思路還較為常規,但實驗部分非常突出。
作者:
- Tien N. Nguyen, Associate Professor, Department of Computer Science, Software Engineering Program, low State UniversityResearch interest: Software engineering: 1) Program Analysis and Understanding , 2) software Evolution and Maintenance, 3) Mining Software repositories, 4) Version and Configuration Management, 5) Web and Configurable Code Analysis
- Danny Dig. associate professor, EECS Department, Oregon State UniversityResearch interests: automated refactoring, interactive program analysis and transformation, design & architectural patterns, and broadly interested in concurrency and parallelism. mobile computing, software development processes, program analysis, softe=ware testing, and software evolution.
背景介紹:
the state-of-the-art research in code completion
- Using API usage patterns:
1) mine via the deterministic algorithms such as frequent itemset mining, pair ass-ociations, frequent subsequence or subgraph mining.
2) to find the matching pattern, then recommend the rest of the API elements in the pattern - Using statistical learning via language models: 1) rely on the regularity of source code and create a model that statistically learns code patterns from a large corpus.2) can predict what token is likely to follow a sequence of given code elements.
3) Limitation: difficult to determine which tokens belong to a project-specific code idiom, which produces noise.
本文中:
They present a novel approach to code completion that leverages the regularity and repetitiveness of software changes. We also consider the surrounding code context at the recommendation point.
技術簡介:
Key ideas:Repetitiveness of software changes
- Instead of relying on source code repetitiveness, APIREC is based on code change repetitiveness. Grouping fine-grained changes by higher-level intent allows us to cut through the noise of unrelated tokens.
- The changes that belong to higher-level intents will co-occur more frequently than non-related changes. And we use associations among fine-grained changes so that changes neednt have strict order as required in n-gram model.
實驗介紹:
未完待續 T_T
推薦閱讀:
※小米5c這個版本更新之後拍照又更強了,於是我拍了樣張
※「包養」霍金近20年的技術團隊究竟是誰?
※老羅想撕開科技行業漸濃的黑夜,這是他的第五次嘗試。
※我們的身體到底是怎麼保持平衡的? | 科學人 | 果殼網 科技有意思