Automatic Techniques for Code Example Generation

PhD Thesis Proposal Defence


Title: "Automatic Techniques for Code Example Generation"

by

Mr. Xiaodong GU


Abstract:

Developers often wonder how to implement a program functionality. Code examples 
are very helpful in this regard. Over the years, many approaches have been 
proposed to generate code examples. The existing approaches often treat queries 
and source code as textual documents and utilize information retrieval models 
to retrieve relevant code snippets that match a given query.

However, conventional code example generation approaches involve the following 
major challenges. First, they rely on a bag-of-words assumption and cannot 
recognize high-level features of queries and source code. Second, source code 
and natural language queries are heterogeneous. Existing approaches mainly rely 
on the textual similarity between source code and natural language query. They 
lack a mapping of high-level semantics between queries and source code. 
Moreover, user requirements are changing, this requires to generate novel code 
examples rather than existing project-specific code snippets.

To address these challenges, in this thesis, we propose two deep learning based 
approaches to the generation of code examples. Instead of mapping keywords, our 
approaches learn the deep semantics of queries and code snippets. We first 
propose a technique, DeepAPI which generates API sequences via deep learning 
and synthesizes code snippets with the generated API sequences. Furthermore, we 
propose a technique, DeepCodeHow to generate code examples via searching and 
summarizing from existing code corpus. Finally, we propose a combinational 
approach, DAPE that combines both the generative and searching based techniques 
to generate novel code examples. Our proposed techniques effectively generate 
relevant code snippets and outperform the conventional IR-based approaches.


Date:			Friday, 31 March 2017

Time:                  	3:00pm - 5:00pm

Venue:                  Room 4475
                         (lifts 25/26)

Committee Members:	Dr. Sunghun Kim (Supervisor)
  			Dr. Xiaojuan Ma (Chairperson)
 			Prof. Shing-Chi Cheung
 			Prof. Fangzhen Lin


**** ALL are Welcome ****