Projects & Tools

Code Recommendation

Many libraries and frameworks are not intuitive to use. While some exceptional pieces of software may be documented well, it is often the case that libraries lack informative API documentation, and lack sufficient and effective source code examples that would demonstrate how these libraries should be used.

When such code examples do exist, they can be very helpful; programmers can often simply copy an example into the current project and then adapt it to the new context, thus enabling a particular API programming task to be completed rather quickly.

This project focuses on developing source-code recommendation tools that automatically construct and deliver relevant source-code snippets that can be used to complete particular programming tasks.

Our approach for code recommendation is semantic-based. It relies on an explicit and formal ontological knowledge representation of source-code and user context. It also takes advantage of points-to analysis techniques to handle special recommendation cases.

Therefore, we have developed an ontology model for code recommendation. More information about this ontology model can be found in the Code Search Ontologies page.

In order to investigate and evaluate the value of ontologies and pointer analysis in source code recommendation, we have implemented the first version of an object instantiation and recommendation tool named JMentor . This tool is is also capable of searching for and retrieving relevant software components. This combination is meant to promote multiple levels of software understanding and knowledge reuse