標籤:

API Code Recommendation using Statistical Learning from Fine-Grained Changes

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 University

    Research 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 University

    Research 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年的技術團隊究竟是誰?
老羅想撕開科技行業漸濃的黑夜,這是他的第五次嘗試。
我們的身體到底是怎麼保持平衡的? | 科學人 | 果殼網 科技有意思

TAG:API | 科技 |