Research Project Title:
Learning Program Embeddings with RNNs
abstract:Establishing a metric to compare the similarity of two pieces of code in terms of style, functionality, and performance is essential to creating systems that can automatically perform optimizations, generate code from specifications, and simply search through a code base. However, current approaches still only rely on edit distance from either characters or from the abstract syntax tree. This representation, while easy to implement and relatively performant, is unable to compare code across different languages or code that has the same functionality but very different structural arrangements. For this SuperUROP project, I am attempting to use neural networks to learn an optimal representation for code that can efficiently and accurately be used for common code-search related applications.
"I am participating in SuperUROP because, after three years at MIT, I have finally figured out that research is the heart and soul of MIT undergraduate education. My background in compilers through my internships is directly related to the approach that my advisor and I are taking with this project. I hope to learn more about machine learning and the processes that are the most effective at tackling an open ended problem. This is also what I find the most exciting about the project."