The reviewed record of science sign in
Pith

arxiv: 2410.06438 · v1 · pith:FBTBSL3Z · submitted 2024-10-09 · cs.PL

Leroy: Library Learning for Imperative Programming Languages

Reviewed by Pith T0 review T1 audit T2 compute T3 formal T4 kernel pith:FBTBSL3Zrecord.jsonopen to challenge →

classification cs.PL
keywords librarylearningleroyprogrammingabstractionsimperativelanguagelanguages
0
0 comments X
read the original abstract

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. Previous work has focused on functional Lisp-like languages, as their regularity makes them more amenable to extracting repetitive structures. Our work introduces Leroy, which extends existing library learning techniques to imperative higher-level programming 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 that 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 corpus of programs. Leroy achieves a compression ratio of 1.04x of the original code base, with a slight expansion when the library is included. Additionally, we show that our technique prunes invalid abstractions.

This paper has not been read by Pith yet.

discussion (0)

Sign in with ORCID, Apple, or X to comment. Anyone can read and Pith papers without signing in.