A general path-based representation for predicting program properties

Uri Alon, Meital Zilberstein, Omer Levy, Eran Yahav

Research output: Chapter in Book/Report/Conference proceedingConference contributionpeer-review

Abstract

Predicting program properties such as names or expression types has a wide range of applications. It can ease the task of programming, and increase programmer productivity. A major challenge when learning from programs is how to represent programs in a way that facilitates effective learning. We present a general path-based representation for learning from programs. Our representation is purely syntactic and extracted automatically. The main idea is to represent a program using paths in its abstract syntax tree (AST). This allows a learning model to leverage the structured nature of code rather than treating it as a flat sequence of tokens. We show that this representation is general and can: (i) cover different prediction tasks, (ii) drive different learning algorithms (for both generative and discriminative models), and (iii) work across different programming languages. We evaluate our approach on the tasks of predicting variable names, method names, and full types. We use our representation to drive both CRF-based and word2vec-based learning, for programs of four languages: JavaScript, Java, Python and C#. Our evaluation shows that our approach obtains better results than task-specific handcrafted representations across different tasks and programming languages.

Original languageEnglish
Title of host publicationPLDI 2018 - Proceedings of the 39th ACM SIGPLAN Conference on Programming Language Design and Implementation
EditorsJeffrey S. Foster, Dan Grossman, Jeffrey S. Foster
PublisherAssociation for Computing Machinery
Pages404-419
Number of pages16
ISBN (Electronic)9781450356985
DOIs
StatePublished - 11 Jun 2018
Externally publishedYes
Event39th ACM SIGPLAN Conference on Programming Language Design and Implementation, PLDI 2018 - Philadelphia, United States
Duration: 18 Jun 201822 Jun 2018

Publication series

NameProceedings of the ACM SIGPLAN Conference on Programming Language Design and Implementation (PLDI)

Conference

Conference39th ACM SIGPLAN Conference on Programming Language Design and Implementation, PLDI 2018
Country/TerritoryUnited States
CityPhiladelphia
Period18/06/1822/06/18

Keywords

  • Big code
  • Learning representations
  • Machine learning
  • Programming languages

Fingerprint

Dive into the research topics of 'A general path-based representation for predicting program properties'. Together they form a unique fingerprint.

Cite this