Leroy: Library Learning for Imperative Programming Languages
Library learning is the process of building a library of common functionalities from a given set of programs. Typically, this process is applied in the context of aiding program synthesis: concise functions can help the synthesizer produce modularized code that is smaller in size. With AI tools being better at synthesizing programs in general purpose languages than in domain specific ones, most program synthesis work focus on Domain Specific languages (DSLs). Consequently, most library extraction tools are designed to abstract over simple DSLs written in a lisp-like syntax that often have repetitive behaviour.
Our work introduces Leroy, which extends existing library learning techniques to higher level programming imperative languages, with the goal of facilitating reusability and ease of maintenance. Leroy wraps the existing Stitch framework for library learning, and converts imperative programs into a lisp-like format using the AST. Our solution uses Stitch to do a top-down, corpus guided extraction of repetitive expressions. Further, we prune abstractions which cannot be implemented in the programming language and convert the best abstractions back to the original language. We implement our technique in a tool for a subset of the Python programming language, and evaluate it on a large corpora of programs. Leroy achieves a compression ratio of 1.04x. Additionally, we show that our technique prunes invalid abstractions.
Sun 20 OctDisplayed time zone: Pacific Time (US & Canada) change
11:00 - 12:30 | |||
11:00 30mTalk | Don’t Call Us, We’ll Call You HATRA Jan Liam Verter Faculty of Mathematics and Physics, Charles University, Tomas Petricek Charles University Link to publication | ||
11:30 30mTalk | Learner-Centered Design Criteria for Classroom Proof Assistants HATRA Link to publication | ||
12:00 30mTalk | Leroy: Library Learning for Imperative Programming Languages HATRA Abhiram Bellur University of Colorado Boulder, Razan Alghamdi University of Colorado, Boulder, Kidus Workneh University of Colorado, Boulder, Joe Izraelevitz University of Colorodo Boulder Link to publication |