Serenity: Library Based Python Code Analysis for Code Completion and Automated Machine Learning
Wenting Zhao, Ibrahim Abdelaziz, Julian Dolby, Kavitha Srinivas,, Mossad Helali, Essam Mansour

TL;DR
Serenity is a static analysis framework for Python that leverages dynamic dispatch and library abstraction to improve code completion and automated machine learning, achieving performance comparable to neural models.
Contribution
This work introduces Serenity, a novel static analysis framework for Python that effectively supports code completion and automated machine learning tasks.
Findings
Serenity achieves state-of-the-art performance in code completion.
Serenity's analysis is comparable to neural models in performance.
The framework is efficient and useful for practical applications.
Abstract
Dynamically typed languages such as Python have become very popular. Among other strengths, Python's dynamic nature and its straightforward linking to native code have made it the de-facto language for many research areas such as Artificial Intelligence. This flexibility, however, makes static analysis very hard. While creating a sound, or a soundy, analysis for Python remains an open problem, we present in this work Serenity, a framework for static analysis of Python that turns out to be sufficient for some tasks. The Serenity framework exploits two basic mechanisms: (a) reliance on dynamic dispatch at the core of language translation, and (b) extreme abstraction of libraries, to generate an abstraction of the code. We demonstrate the efficiency and usefulness of Serenity's analysis in two applications: code completion and automated machine learning. In these two applications, we…
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
Taxonomy
TopicsComputational Physics and Python Applications · Software Engineering Research · Parallel Computing and Optimization Techniques
